Skip to content

Commit

Permalink
await add new description
Browse files Browse the repository at this point in the history
  • Loading branch information
yygmind authored and YuChengKai committed Aug 25, 2018
1 parent 9b73b0e commit 8af0e15
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion JS/JS-ch.md
Original file line number Diff line number Diff line change
Expand Up @@ -1426,7 +1426,7 @@ console.log('1', a) // -> '1' 1
对于以上代码你可能会有疑惑,这里说明下原理
- 首先函数 `b` 先执行,在执行到 `await 10` 之前变量 `a` 还是 0,因为在 `await` 内部实现了 `generators``generators` 会保留堆栈中东西,所以这时候 `a = 0` 被保存了下来
- 因为 `await` 是异步操作,所以会先执行 `console.log('1', a)`
- 因为 `await` 是异步操作,遇到`await`就会立即返回一个`pending`状态的`Promise`对象,暂时返回执行代码的控制权,使得函数外的代码得以继续执行,所以会先执行 `console.log('1', a)`
- 这时候同步代码执行完毕,开始执行异步代码,将保存下来的值拿出来使用,这时候 `a = 10`
- 然后后面就是常规执行代码了
Expand Down

0 comments on commit 8af0e15

Please sign in to comment.