我的回答
- 回调函数
- promise
- generator
- async/await
参考回答
- callback
- 优点:逻辑简单
- 缺点:深层级产生回调地狱
- Promise
- 优点:一旦状态改变就不会在变,任何时候都可以得到这个结果;可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数
- 缺点:无法取消,当处于pengding状态时,无法得知目前进展到哪一个阶段
- Generator
- 优点:执行可控;每一步可以传递数据,也可以传递异常
- 缺点:控制流程比较复杂,成本比较高
- async/await
- 优点:代码清晰,不许需要链式调用就可以处理回调地狱的问题;错误的话可以被try catch
- 缺点:控制流程复杂,成本较高