await多层嵌套与同步顺序

多重await其实并不是完全同步顺序的

问题描述

  • 我以为执行顺序是 同步代码1 => a()中所有内容 => 同步代码2
  • 实际上是 同步代码1 => a()中b()之前的内容 => 同步代码2 => b()中的内容
1
2
3
4
5
6
7
8
9
10
async a(){
await b(){ // 同步顺序只到这里
// 这里的代码会在 同步代码2 结束后回头来执行
}
}

// ...
同步代码1
await a()
同步代码2
,