javascript - 是同步的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);
});
};
解决方案
axios.post(...).then(...)
是一个异步的承诺。使用 axios,我认为您无法真正使其同步:如何使 axios 同步
理想情况下,使用 redux 我会使用redux-thunk进行异步调用。
同步调用将使主线程暂停(使整个页面无响应),直到收到响应(想象客户端连接缓慢),这是糟糕的用户体验。我不知道你为什么要让它同步,但如果你真的应该尝试使用XMLHttpRequest
:https ://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests#Synchronous_request
推荐阅读
- docker - Docker 删除包含更改的容器
- asp.net-mvc - Html.RenderAction 与 Angular
- hyperledger-fabric - 超级账本结构 CA 和 Softhsm
- spring - 无法让 CompletableFuture 和 Spring REST 一起工作
- javascript - 反应脚本中随机位置的“语法错误:意外关键字”
- c# - 程序集文件夹中的文件夹 GAC_MSIL
- python - Reportlab 的网格看起来完全关闭
- android - Android facebook登录 - 卡在加载中
- spring - 加载资源失败:net::ERR_INCOMPLETE_CHUNKED_ENCODING 将模型属性传递给 JSP 页面时发生错误
- angularjs - AngularJS没有加载