收藏
回答

如何让onshow在数据加载完后才开始执行

问题模块
API和组件

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

最后一次编辑于  2017-07-21  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

6 个回答

  • Allen
    Allen
    2017-07-21

    写函数回调

    2017-07-21
    赞同
    回复
  • 徐烈
    徐烈
    2017-07-21

    是不是只能用setTimeout

    2017-07-21
    赞同
    回复
  • 徐烈
    徐烈
    2017-07-21
    setTimeout(function() {
          ********
        }, 2000)


    2017-07-21
    赞同
    回复
  • Allen
    Allen
    2017-07-21

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

    2017-07-21
    赞同
    回复
  • 徐烈
    徐烈
    2017-07-21

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

    2017-07-21
    赞同
    回复
  • 徐烈
    徐烈
    2017-07-21

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


    2017-07-21
    赞同
    回复