async 函数
async
函数是什么?一句话,它就是Generator
函数的语法糖。async
函数就是将Generator
函数的星号(*)替换成async
,将yield
替换成await
,仅此而已
1 | function getSomething() { |
async 函数的实现原理
async
函数的实现原理,就是将 Generator
函数和自动执行器,包装在一个函数里。
1 | async function fn(args) { |
所有的 async
函数都可以写成上面的第二种形式,其中的 spawn
函数就是自动执行器。
下面给出 spawn
函数的实现,基本就是前文自动执行器的翻版。
1 | function spawn(genF) { |