如何设置小程序onLoad晚于onLaunch执行

小程序网络请求默认为异步请求,在appjs的onLaunch运行后进行异步请求时,程序不会停止,Page页已执行onload, 我们希望onLaunch执行完后再执行onload。

//app.js

App({

onLaunch:function(){

    let self=this;

    wx.request({

url:'http://test.cn/login',//仅为示例,并非真实的接口地址

data: {},

success:function(res){

this.globalData.checkLogin =true;

//由于这里是网络请求,可能会在 Page.onLoad 之后才返回

// 所以此处加入 callback 以防止这种情况

if(self.checkLoginReadyCallback){

self.checkLoginReadyCallback(res);

        }

      }

    })

  },

globalData: {

checkLogin:false

  }

})

//index.js

//获取应用实例

constapp = getApp()

Page({

data: {

test:false

  },

onLoad:function(){

letthat =this;

//判断onLaunch是否执行完毕

if(app.globalData.checkLogin){

      that.setData({

test:true

      })

}else{

app.checkLoginReadyCallback =res=>{

        that.setData({

test:true

        })

      };

    }

  }

})

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容