这个封装请求既执行了then又执行了catch怎么回事?
会同时输出111和222
api.common_post('test',{
content: this.data.content
}).then(res=>{
console.log(111)
}).catch(fail=>{
console.log(222)
})
const http = ({ url = '',header, param = {}, method} = {}) => {
return new Promise((resolve, reject) => {
wx.request({
url: url,
data: param,
header: header||{
'content-type': 'application/json'
},
method,
complete: (res) => {
resolve(res.data)
},
fail: error=>{
resolve(error)
}
})
})
}
回复
1个回答
test
2024-07-08
应该使用 success
, 而不是 complete
complete
是指请求后的执行的函数,所以如果当你请求失败,complete
和 fail
都会执行
wx.request({
xxxxxxx,
success: (res) => {
resolve(res.data)
},
fail: error=>{
resolve(error)
}
})
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容