微信小程序onLaunch、onLoad执行生命周期

原文转载自:微信小程序onLaunch、onLoad执行生命周期

1、需求:先执行App的onLaunch添加验证权限等,再执行Page里的onLoad。

2、问题:还没有等onLaunch执行完成,onLoad就已经开始执行了。

3、解决办法:定义回调函数。

4、具体实现:Page页面判断一下当前app.globalData.employld是否有值,如果没有(第一次)定义一个app方法(回调函数),App页面在success后判断有没有page页面定义的回调方法,如果有就执行,因为回调函数是在Page页面内,方法作用域应指向的是Page页面。

  

app.employIdCallback = employId => {...}。

App.js

App({
    onLaunch:function(){
        wx.request({
            url: 'test.php', 
            succrss:(res)=>{
                this.globalData.employId = res.employId;
                //由于这里是网络请求,可能会在 Page.onLoad 之后才返回
                // 所以此处加入 callback 以防止这种情况
                if (this.employIdCallback){
                   this.employIdCallback(employId);
                }
            }
        })
    },
    globalData: {
        employId: ''
    }
});    

index.js

//获取应用实例
const app = getApp()

Page({
    data:{},
    onLoad:function(){
        //判断是用户是否执行完了请求,绑定了信息
        if (app.globalData.employId && app.globalData.employId != '') {
//执行操作
}else{
//执行操作。。


}


}
    } 
})

实现~