谢谢大家,请问一个关于小程序登录失效后,再次发起业务代码请求的问题?

export const request = (options = {}) => {

//异步封装接口,使用Promise处理异步请求

return new Promise((resolve, reject) => {

let rd3_key = uni.getStorageSync('rd3_key') ? uni.getStorageSync('rd3_key') : ''

// 发送请求

uni.request({

url: baseUrl + options.url || '', //接收请求的API

method: options.method || 'GET', //接收请求的方式,如果不传默认为GET

data: options.data || {}, //接收请求的data,不传默认为空

data: {

...options.data,

rd3_key

},

header: {

'content-type': 'application/x-www-form-urlencoded', //修改此处即可

}

}).then(data => {

let [err, res] = data;

// if(res.data.code == 4001){

// post_login()

// }

if(res.data.code == 4001){

// return post_login().then(resolve, reject)

post_login()

}

resolve(res);

}).catch(error => {

reject(error);

})

})

}

上面是封装的请求代码,我们程序登录" title="小程序登录">小程序登录失效的话,返回状态码是4001,也就是下面这段代码,

if(res.data.code == 4001){

post_login() //wx.login 静默登录拿openid

}

当登录失效也就算code== 4001的时候, 我重新调登录,这一步没有问题,但是那些各个页面请求的接口,没有再次发起请求,我也不知道用户会在哪个页面的出现登录失效的情况,又不想在每个接口请求的地方都写一个if(res.data.code == 4001) 发起登录后,再调用业务接口请求,

这个有什么比较好的统一封装请求的方法吗?谢谢大家


回答:

可以写在响应拦截器里,如果发现code===4001的话可以先跳转到一个中间页进行提示正在重新登录,重新登录成功后再跳转回上一页走一遍生命周期

以上是 谢谢大家,请问一个关于小程序登录失效后,再次发起业务代码请求的问题? 的全部内容, 来源链接: utcz.com/p/932942.html

回到顶部