收藏
回答

面对onLoad和onShow, async/await也束手无策吗?

情境是如下

在一个页面的 onLoad 函数 

async onLoad (options) {

await function (){

......//do something 这里是一个异步请求

console.log(11111111)

}

console.log(222222)

}

控制台输出顺序 111111, 222222,, 这个没问题。(如果没用async / await, 打印就是 222222, 111111

但是

如果在同页面的 onShow 生命周期函数 中 打印

onShow () {

console.log(3333333)

}

那么控制台打印的顺序就是 3333333, 111111, 222222。(理想中的顺序是 111111, 222222,3333333

很明显,我们很多场景都是需要先将 onLoad 执行完,再去执行 onShow。

所以,有什么办法可以解决吗?


回答关注问题邀请回答
收藏

2 个回答

  • 陈宇明
    陈宇明
    03-30

    使用场景应该是多个async函数,然后通过await来进行执行顺序的控制

    03-30
    有用
    回复
  • 跨商通
    跨商通
    03-30

    也很明显,这种需求是一定可以化解的。

    onLoad和onShow谁先执行完毕,是一定无法保证的,以这个规则去设计你们的业务逻辑吧,别钻牛角尖了,别非要让onLoad执行完才执行onShow。

    03-30
    有用
    回复 1
    • @T
      @T
      发表于移动端
      03-30
      之前用回调到是可以解决,最近学习了async/await称为最佳的解决异步请求问题,所以就想问问有没有其他方法可以解决的。😁
      03-30
      回复
登录 后发表内容
问题标签