第一种
实现 promise的finally方法,在finally
中改变,可以写的参考promise详解封装一下axios
。
1.根据promise详解给Promise实现finally
方法。
2.封装axios
function myAxios(url, params) {
return new Promise((resolve, reject) => {
axios.get(url, params).then(function (response) {
resolve(response.data)
}).catch(function (err) {
reject(err)
})
})
}
myAxios(url,params).then((data)=>{console.log(data)}).catch(()=>{}).finally(()=>{})
第二种
写成请求公用的状态改变
axios.interceptors.request.use(function (config) {
console.log(config)
//Toast.loading({mask: true})
return config;
});
类似这样,拦截响应 在响应之前就开始操作
支持配置, 不想要loading的接口可以在config加一个参数
在请求的时候这么写
this.axios.post('url',qs.stringify({//参数
}),{test:'testConfig'}//这个对象配置返回的config属性
).then(res=>{
或者
this.axios({
url: 'url',
method: 'post',
data: {},
test:'testConfig', //这个对象配置返回的config属性
}).then(res=>{
在打印出来的config
里面,得到参数,再根据情况判断是否需要loading
网友评论