我是ReactJS的新手,在我的ajax调用中,我尝试使用 Axios库。太棒了,但是现在我 想知道是否有办法知道 axios拦截器中是否有待处理的请求,因为我想显示加载覆盖每个ajax调用 (如果尚不可见)并在ALL时删除覆盖诺言已解决。 现在,我从拦截器入手:
axios.interceptors.request.use(function (config) { //here logi of show loading return config; }, function (error) { return Promise.reject(error); });
And I would like add something like this:
axios.interceptors.respose.use(function (config) { //logic remove loading if it is last response return config; }, function (error) { return Promise.reject(error); });
那么,如何(如果可能的话)知道它是否是最后一个响应?使用前ReactJs, 我用角1.x和在$http service有
1.x
$http service
$http.pendingRequests
在axios中有类似$ http服务的东西吗?
这是我的解决方案:)
var numberOfAjaxCAllPending = 0; // Add a request interceptor axios.interceptors.request.use(function (config) { numberOfAjaxCAllPending++; // show loader return config; }, function (error) { return Promise.reject(error); }); // Add a response interceptor axios.interceptors.response.use(function (response) { numberOfAjaxCAllPending--; console.log("------------ Ajax pending", numberOfAjaxCAllPending); if (numberOfAjaxCAllPending == 0) { //hide loader } return response; }, function (error) { numberOfAjaxCAllPending--; if (numberOfAjaxCAllPending == 0) { //hide loader } return Promise.reject(error); });