axios中没有promise的finally和done方法,如何实现?
在开发的过程中遇到了一些问题,每次的异步请求,在处理loading状态的时候,在最后需要改变状态,axios中没有提供promise的finally和done方法,所以每次loading状态的改变需要在then和catch中改变两次,现在把catch统一封装处理了,但是loading状态就没有办法改变了,最好有finally方法能一次就处理了。各位有没有好的实现方法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
谢那个谁的邀.
在 axios 中做loading, 我目前的做法是放在请求和响应
拦截器
里.这样你就不需要每个请求都加
loading
. 这样写, 只要请求了, 就会有loading.在它的外层再封装一个对象就可以,我做过
切实可行的扩展有:
阻挡重复请求
阻挡频繁请求
延迟请求
打断请求
finally
相应的exception类
和原来一样的链式操作。
不过。。。具体代码我不知道丢哪去了
所有请求都加个loading的做法太逗了, 正确的做法是给promise补一个finally 方法啊
.then().finally(()=>{
loading = false
})