小程序生命周期函数async?
发布于 3 年前 作者 yanyu 14238 次浏览 来自 官方Issues

大佬们,请教一个问题。如果我需要通过后台接口获取到一个信息,想把这个值存储在app.globalData中,在后续的Page和Component中注入到data中去,目前有一个问题,如果我想实现同步的方式实现获取到数据后再注入,能否同步App的 onLaunch.

onLaunch:async function(){

xxxx

let info=await someThings()

}

请问大佬们,这样搞会出现什么预期之外的问题嘛?

或者Page的 onLoad async化

onLoad:async function(){}

1 回复

谢邀。

不评论你的方案的好坏,介绍一下我们的做法:

以openid为例,假如从后台获得openid,想保存在globalData里,以供每个页面调用:

在app.js里:

getOpenid:async function(){

if(this.globalData.openid) return this.globalData.openid

else {从后台获取openid(await同步操作),保存在this.globalData.openid里,并返回本函数}

}

在每个page.js里:

onLoad:async function(){

let openid = await app.getOpenid()

}

回到顶部