-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Description
发行方式
小程序
具体平台
微信小程序
开发环境
Windows
项目创建方式
CLI命令行
依赖版本
{
"name": "hm-shopping",
"version": "0.1.0",
"private": true,
"dependencies": {
"@vant/weapp": "^1.11.7",
"vue": "^2.6.14",
"vuex": "^3.6.2"
},
"devDependencies": {
"@vue/cli-service": "^5.0.8",
"postcss-px-to-viewport": "^1.1.1"
}
}
问题描述
uni.addInterceptor('switchTab', {
invoke(options) {
return new Promise((resolve) => {
setTimeout(() => {
console.log('s1-invoke')
resolve(options)
}, 3000)
})
},
success(res) {
console.log('s1-success')
}
})
uni.addInterceptor('switchTab', {
invoke(options) {
return new Promise((resolve) => {
setTimeout(() => {
console.log('s2-invoke')
resolve(options)
}, 3000)
})
},
success(res) {
console.log('s2-success')
}
}
)
这段代码会在打印's1-invoke'后结束,后续的's2-invoke','s1-success','s2-success'都被阻断了,而且控制台不会有任意报错
重现步骤
使用拦截器拦截任意一个 api,并且添加多个异步拦截器就可以复现这个问题
期望行为
可以正确处理promise的链式调用,先打印's1-invoke'再打印's2-invoke','s1-success','s2-success',当然我不知道uniapp是不是不支持我使用多个异步链式调用,但是我在源代码里其实是有看到类似的多个异步链式调用处理的
实际行为
No response
截图或录屏
我在b站发布了一个视频进行更详细的问题说明,以下是地址:【uniapp 的拦截器有 bug 的。。。】 https://www.bilibili.com/video/BV1oeGCzwE28/?share_source=copy_web&vd_source=9fcc32460033b08131c59254afaf7a1c