小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在app.js的onLaunch中执行请求授权和获取服务端的token,然后首页的js拿着这个token去后台请求接口,但有时会出现token还没拿到就去后台请求API接口了,这个问题怎么解决啊?
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
方法很多啊,有简单的和复杂的,复杂的更通用,大概是这种模式
app.js页
getToken(){
wx.request({
url:'xxx',
success:(res)=>{
this.globalData.token = res.data.token;
this.globalData.tokenCallback && this.globalData.tokenCallback();//如果回调函数存在就执行
}
index.js
里判断一下
if(app.globalData.token){//如果已经赋值成功就直接用
//获取到token后的执行逻辑
}else{//如果没有赋值成功就预先写好一个回调函数,然后获取到token后执行回调函数就行了
app.globalData.tokenCallback = function(token){
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
可以考虑在首页的js去请求token,请求成功再去后台请求api接口,或者在首页弄个定时器,隔一段时间去查找token是否有值,有值就去调后台api,没值就继续轮询
getApp().login().then(function(){
//to do
})
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
方法很多啊,有简单的和复杂的,复杂的更通用,大概是这种模式
app.js页
getToken(){
wx.request({
url:'xxx',
success:(res)=>{
this.globalData.token = res.data.token;
this.globalData.tokenCallback && this.globalData.tokenCallback();//如果回调函数存在就执行
}
}
}
index.js
里判断一下
if(app.globalData.token){//如果已经赋值成功就直接用
//获取到token后的执行逻辑
}else{//如果没有赋值成功就预先写好一个回调函数,然后获取到token后执行回调函数就行了
app.globalData.tokenCallback = function(token){
//获取到token后的执行逻辑
}
}
可以考虑在首页的js去请求token,请求成功再去后台请求api接口,或者在首页弄个定时器,隔一段时间去查找token是否有值,有值就去调后台api,没值就继续轮询
getApp().login().then(function(){
//to do
})