We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9b73b0e commit 8af0e15Copy full SHA for 8af0e15
JS/JS-ch.md
@@ -1426,7 +1426,7 @@ console.log('1', a) // -> '1' 1
1426
对于以上代码你可能会有疑惑,这里说明下原理
1427
1428
- 首先函数 `b` 先执行,在执行到 `await 10` 之前变量 `a` 还是 0,因为在 `await` 内部实现了 `generators` ,`generators` 会保留堆栈中东西,所以这时候 `a = 0` 被保存了下来
1429
-- 因为 `await` 是异步操作,所以会先执行 `console.log('1', a)`
+- 因为 `await` 是异步操作,遇到`await`就会立即返回一个`pending`状态的`Promise`对象,暂时返回执行代码的控制权,使得函数外的代码得以继续执行,所以会先执行 `console.log('1', a)`
1430
- 这时候同步代码执行完毕,开始执行异步代码,将保存下来的值拿出来使用,这时候 `a = 10`
1431
- 然后后面就是常规执行代码了
1432
0 commit comments