收藏
回答

小程序异步获取用户信息问题

官方文档里,小程序由于是异步获取userinfo,所以使用了userInfoReadyCallback

但如果在index.js的onLoad方法里,就要通过userInfo获取其他信息的话,

app.userInfoReadyCallback callback方法还没有执行,就会使用到userInfo而报错啊


//app.js

// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回// 所以此处加入 callback 以防止这种情况if (this.userInfoReadyCallback) {                

    this.userInfoReadyCallback(res)}

//index.js

onLoad: function () {    

if (app.globalData.userInfo) {      

this.setData({

        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else {      // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    }
  },



回答关注问题邀请回答
收藏

3 个回答

  • Explor Fu
    Explor Fu
    2023-08-12

    完全看不懂,不理解。

    2023-08-12
    有用
    回复
  • 孙志坚
    孙志坚
    2017-09-25

    是小程序加载的时候需要的……

    2017-09-25
    有用
    回复
  • yuhao
    yuhao
    2017-09-24

    换思路,不要想着在本页面,在之前 的页面上加载到变量里,传进来就不行了。

    2017-09-24
    有用
    回复
登录 后发表内容