onLaunch與onLoad同步獲取用戶數據


前言

在開發項目的時候遇到從全局獲取用戶信息,邏輯是從app.js中的onLauch獲取,page頁面的onLoad拿到數據填充到頁面。遇到的問題是onLauch與onLoad是異步的,沒辦法從頁面判斷app.js中獲取數據的先后,於是參照網上的方式用回調進行處理。

代碼

app.js

App({
    globalData: {
       //需要獲取的數據 
       userInfo: null,
       //回調函數
       cb: null 
    },
	onLauch: function(){
        //異步獲取用戶數據
        wx.request({
            url: '/api/getUserInfo',
            success: res => {
                this.globalData.userInfo = res.data.userInfo;
                cb && cb(res.data.userInfo);
            }
        })
    }
})

index.js

const app = getApp();

Page({
	data: {},
	onLoad: function(){
		if(app.globalData.userInfo){
            this.setData({
                userInfo: app.globalData.userInfo
            })
		} else {
            app.globalData.cb = (userInfo) => {
                this.setData({
                    userInfo
                })
            } 
        }
	}
})


免責聲明!

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



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