微信小程序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{
      //由於請求是網絡請求,可能會在Page.onLoad后才返回
      //所以加入callback 防止這種情況
      app.employIdCallback = employId =>{
        if(employId!=''){
          //執行操作。。
        }
      }
    } 
})

 

實現~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM