我是 ReactJS 新手,对于我的 ajax 调用,我尝试使用 Axios图书馆。太棒了,但现在我想知道是否有办法知道 axios 拦截器中是否有待处理的请求,因为我想显示每个 ajax 调用的加载覆盖(如果尚未可见)并在所有时删除覆盖 promise 得到解决。 现在我开发了拦截器:

axios.interceptors.request.use(function (config) { 
    //here logi of show loading 
    return config; 
}, function (error) { 
    return Promise.reject(error); 
}); 

我想添加这样的内容:

axios.interceptors.respose.use(function (config) { 
    //logic remove loading if it is last response 
    return config; 
}, function (error) { 
    return Promise.reject(error); 
}); 

那么(如果可能的话)如何知道这是否是最后一个响应? 在使用 ReactJs 之前,我使用 Angular 1.x,在 $http 服务 中有

$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); 
}); 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!