關(guān)于微信小程序在app.js修改后的全局變量值在其他頁(yè)面異步獲取的問(wèn)題

前言

雖然app.js先于index.js。但是修改app.js中的全局變量是異步請(qǐng)求,如果你想在index.js里獲取app.js修改后的值,那么需要使用promise來(lái)實(shí)現(xiàn)異步。

 //app.js
App({
   globalData: {
     userInfo: null
   },
 // 檢測(cè)授權(quán)
  getauthor: function () {
    return new Promise((resolve, reject) => {
          wx.getSetting({
            success: (res) => {
              if (res.authSetting["scope.userInfo"]) {
                console.log("已授權(quán)");
                wx.getUserInfo({
                  lang: 'zh_CN',
                  success:(res)=> { //箭頭函數(shù)為了處理this的指向問(wèn)題
                    this.globalData.userInfo = res.userInfo;
                    resolve(this.globalData.userInfo); // 這里是關(guān)鍵
                  }
                })
              }
              else {
                reject(this.globalData.userInfo)
                wx.redirectTo({
                  url: '/pages/author/author'
                })
                console.log("未授權(quán)");
                wx.removeStorage({
                  key: 'unionid'
                })
              }
            }
          })
    })
  }
})


index.js

    // 獲取用戶信息
      app.getauthor().then(res => {
                   console.log(res);
      })


因?yàn)橐紫燃虞dindex頁(yè)面,所以需要使用異步請(qǐng)求,在其他頁(yè)面的話,可以直接使用app.globalData.userInfo.userInfo,





作者:Vam的金豆之路

主要領(lǐng)域:前端開(kāi)發(fā)

我的微信:maomin9761

微信公眾號(hào):前端歷劫之路