解決微信小程序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();
    })
}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容