解决微信小程序app.js中异步请求尚未执行完成,就执行Page页面请求的问题

问题描述:在app.js中执行login请求获取token,home.js中的请求会出现不带token的情况。

原因:app.js中的login请求是异步操作,所以会出现执行home.js中请求的时候,login请求还未执行完成,因此获取不到token。

解决方法:在app.js中使用Promise;在home.js判断Promise的状态,已完成时再去执行页面的请求。

//app.js
wxLogin(){
    return new Promise((resolve,reject)=>{
      wx.login({
        success: (res)=>{
          login({
            code: res.code,
            appid: 'xxx'
          }).then((data)=>{
            resolve(res);
          })
        },
        fail: (err)=>{
          reject(err);
        }
      })
    })
}

//home.js 
const app = getApp();
onLoad(){
    app.wxLogin().then(()=>{
      this.getList();
    })
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容