问题描述
在mpvue 开发小程序使用返回拦截器时出现如下错误
newFly.get(...).then(...).finally is not a function
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
// 添加响应拦截器
fly.interceptors.response.use((response) => {
wx.hideLoading()
let rest = response.data
if (!rest.status) {
if (rest.code == '4001') {
wx.showModal({
title: '温馨提示',
content: rest.msg,
// showCancel: false, TODO 测试环境
success: function (res) {
if (res.confirm) {
wx.redirectTo({
url: '/pages/noauth/main'
})
}
}
})
}
if (rest.code == '1004') {
fly.lock()
return newFly.get(host + '/get_token')
.then((d) => {
csrftoken = d.data.data
setLS('token', d.data.data)
})
.finally(() => fly.unlock())
.then(() => {
console.log(`重新请求:path:${response.request.url},baseURL:${response.request.baseURL}`)
return fly.request(response.request)
}) // 解锁
}
} else {
return rest
}
},
(err) => {
wx.hideLoading()
if (err) {
return '请求失败'
}
})
你期待的结果是什么?实际看到的错误信息又是什么?
如果不使用.finally就会不间断产生访问
return newFly.get(host + '/get_token').then((d) => {
csrftoken = d.data.data
setLS('token', d.data.data)
fly.unlock()
return fly.request(response.request)
})
}) // 解锁