在JavaScript 想要并发请求且顺序处理获取的数据时有三种姿势
Callback (ES6 之前)
Promise (ES6)
Async Await (ES2017)
Callback, 异步获取的数据互相依赖时, 需要顺序执行, 只得层层套用callback
Promise, 就是直观易读的callback, 嵌套改成链式调用
Async Await, 不再使用callback, 异步操作但是写起来就像普通的同步代码
CAF 把function* 包装的像async function, 可以随时取消了
AbortController 中止Promise (Fetch)
参考