微信小程序异步加载初始数据的问题

一般情况用户首次打开小程序,我们需要加载该用户的一些默认配置和参数,就需要wx.request下api服务器的数据,然后通过页面wx.getStorageSync获取相应的配置。

然而由于wx.request是异步请求,而即便先执行了onLaunch或者onShow再执行onLoad,依然无法在onLoad用wx.getStorageSync获取到数据,这是因为wx.request的返回一般都在onLoad之后才获得。

目前我使用的方法是设置个setInterval(cb,1000),就是每秒执行一次cb,而cb是一个wx.getStorageSync函数,当读到数据后马上clearInterval。

代码如下:

onLoad(options){
var that = this
let timer = setInterval(function(){
let id = wx.getStorageSync(“Id”)
if(id)
{
clearInterval(timer)
that.setData({
id:id
})
}
},1000)
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注