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被保留了