点我去Gitee
点我去Gitee

使复杂异步方法变为同步。用promise阻塞

使复杂异步方法变为同步

假如有一个function async Father(){await A();await b()},
需要等方法A执行完,再继续往下执行B的代码,而A()中有很多东西,可能会导致异步。

可在A()内写成promise(resolve()),在A()内所有方法执行完毕后,再执行promise的resolve(),
使得Father()在等到A()的resole才执行B()

function async Father(){
  console.log('111')
  await A()
  console.log('222')
  await B()
}

function A(){
  return new Promise(async (r, l) => {
    //里面需要执行的各种代码
    console.log('A结束')
    r()
  }
}

function B(){
  console.log('B开始')
  console.log('B结束')
}

最后打印结果
111 A开始 A结束 222 B开始 B结束

posted @ 2023-05-17 09:18  biuo  阅读(70)  评论(0编辑  收藏  举报