首页 > 解决方案 > 是同步的axios请求吗?

问题描述

我在 redux 中使用 axios。我想知道这是我与 axios 的 api 调用。是同步工作吗?如果不是我怎么能同步呢?

return (dispatch) => {
  dispatch({
    type: FETCH_ALLDRIVER_DATA_START
  })

  return axios.post(baseUrl + 'v1/drivers/alldriver', {
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
      }
    })
    .then(response => {
      console.log('jj')
      console.log(response)
    })
    .catch(error => {
      throw (error);
    });
};

标签: javascriptreactjsreduxaxios

解决方案


axios.post(...).then(...)是一个异步的承诺。使用 axios,我认为您无法真正使其同步:如何使 axios 同步

理想情况下,使用 redux 我会使用redux-thunk进行异步调用。

同步调用将使主线程暂停(使整个页面无响应),直到收到响应(想象客户端连接缓慢),这是糟糕的用户体验。我不知道你为什么要让它同步,但如果你真的应该尝试使用XMLHttpRequesthttps ://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests#Synchronous_request


推荐阅读