欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

小程序异步方法执行慢的决绝方法

程序员文章站 2022-07-15 14:56:23
...

比如:在小程序app.js中写请求的方法请求来的参数,在页面里的onload方法中使用,当程序进程执行到了onload方法,而app.js中的请求还没有返回数据就会发生报错。

示例代码 示例我们用个人信息请求

这是app.js中的代码

  onLaunch: function () {
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          wx.getUserInfo({
            success: res => {
              // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              };
            }
          })
        }
      }
    })
  },

这是page中的代码

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

这样就可以在userInfo数据返回后刷新页面了