async function fn() { await a; const result = await b; console.log(result); }
function fn() { a.then(() => { b.then(result => { console.log(result); }); }); }
JS 的 async/await 明明是用 co 模块自动调用 Promise 的迭代器( generator 语法生成)的语法糖
网上各种带你手写的视频、文章,自己花一天时间看一遍不难吧
这些东西跟 Vue 的模板语法、React 的 JSX 语法一样,你不理解背后的原理也能写,但去了解背后的原理并不会花太多时间,又不是让你去手写编译器
例如以下代码:
可以实现成:
能看作类似回调函数的语法糖。
不过 C++ 的 coroutine 是拆成 switch case 块,而不是拆成多个回调函数,这个了解就行。