鍍金池/ 問(wèn)答/HTML/ APPjs中的全局變量更改問(wèn)題

APPjs中的全局變量更改問(wèn)題

wx.getSetting({
  success: res => {
    if (res.authSetting['scope.userInfo']) {
      wx.getUserInfo({
        success: res => {         
          this.globalData.userInfo = res.userInfo
        }
      })
    } else (
      wx.authorize({
        scope: 'scope.userInfo',
        success() {
          wx.getUserInfo({
            success:res=>{
               this.globalData.userInfo =res.userInfo
            }
          })
        }
      })
    )
  }
})

console.log('wa')
this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })

我console了一下,發(fā)現(xiàn)頁(yè)面里onload在調(diào)試界面彈出授權(quán)申請(qǐng)的時(shí)候就會(huì)有'wa',但是在網(wǎng)上看到的小程序生命周期 onlunch是高于onload的,按道理來(lái)說(shuō)我在授權(quán)成功后 改變了全局userInfo變量,再加載頁(yè)面的時(shí)候 頁(yè)面局部變量也能成功獲取到global全局變量啊,但是在控制臺(tái)里面還是null

用官方例子中的,this.userInfoReadyCallback解決了問(wèn)題,但是this.userInfoReadyCallback在官方API中似乎找不到,而且頁(yè)面加載順序還是有疑問(wèn),求大神解釋一下~

回答
編輯回答
疚幼

1、getUserInfo是網(wǎng)絡(luò)請(qǐng)求,回調(diào)可能在onLoad之后才執(zhí)行。
2、userInfoReadyCallback是自定義的方法,作用在于:如果App實(shí)例的getUserInfo在onLoad之后返回的話,就給App添加一個(gè)userInfoReadyCallback方法。等到getUserInfo回調(diào)返回時(shí),就執(zhí)行它。

2017年3月16日 12:48