#案例1
let a = 0
let b = async () => {
let c = await 10
a = a + c
console.log('2', a) // 2 11
}
b()
a++
console.log('1', a) // 1 1
#案例2
let aa = 0
let bb = async () => {
aa = aa + await 10
console.log('2', aa) // -> '2' 10
}
bb()
aa++
console.log('1', aa) // -> '1' 1
这两个案例初次看起来是有点奇怪看了各位大佬的解释,查询一波资料:
比较清楚的认识到:await是promise和generator的语法糖,在await的关键字出线实现一步,让出任务的主线,此时栈中保留了栈中的数据(generator的原因),案例2中 aa = aa + await 10 执行aa+ await 10 de 时候进入异步,此时aa 还是0; 即使后面执行了aa++ 后面执行的异步也是 0+10