09,分析一个await

2020-06-10  本文已影响0人  r8HZGEmq
let a = 0
let b = async () => {
  a = a + await 10
  console.log('2', a) // -> '2' 10
}
b()
a++
console.log('1', a) // -> '1' 1

执行b(),到await之前,a还是==0的。然后碰到await了,后面的代码被暂时保存在Promise.resolve()
等主线程的同步代码执行完后,保存下来的,继续执行

await内部实现了generator,保留了堆栈中的数据,a==0被保留了

上一篇下一篇

猜你喜欢

热点阅读