如何让onshow在数据加载完后才开始执行
发布于 6 年前 作者 yangli 13450 次浏览 来自 问答

按照小程序的时序图,onload完了以后才会onshow,所以我在onload时获取一些数据,并放入data中,但是在onshow时发现虽然onload执行完了,但是setdata的过程还在执行中,有一些数据还没有值,为此,在onshow中获取这个值是就会报空,不知道该怎么解决,其实就只要wait 1-2秒好了。

6 回复

好像小程序的this.setData({ a:res.data  });会因为数据量大有延迟,即便在这句后输出a,a也是空值,如果数据小,可能反应快,感觉是异步的

延时会有误差,回调函数示例:   this.hello(a),hello是首先执行的函数,a是在hello函数执行完毕之后触发的函数

是不是只能用setTimeout

setTimeout(function() {
      ********
    }, 2000)

我将先执行的放在wx.onload里面,后执行的放在onshow里面,这个本身就有先后了吧,onload中肯定要执行完以后才会onshow,但是就是setdata比较慢

写函数回调

回到顶部