【发布时间】:2019-10-12 21:32:57
【问题描述】:
我似乎在文档或相关资源的任何地方都找不到的一点是,当 JS 遇到 await 关键字时,关于调用函数和事件循环的过程是什么。
specs 状态如下:
await 表达式导致异步函数执行暂停,直到 Promise 被解决,即被履行或拒绝,并在履行后恢复异步函数的执行。恢复时,await 表达式的值是已履行的 Promise 的值。
这一切都说得通,但暂停的真正含义是什么?函数是否立即返回给调用者,然后当等待的 promise 解决时,它和异步方法的其余部分被添加到微任务队列中进行处理?我知道async/await 是 Promise API 的语法糖,所以我假设这就是发生的事情,但我想确保我真的理解当达到 await 时发生的“魔法” .
根据我的阅读,这似乎是在 C# 中完成的,但我不确定它是如何转换为 JS 的。
【问题讨论】:
标签: javascript promise async-await