使用Promise而不是回调的利弊是什么?
Topics
AsyncJavaScript
在GitHub上编辑
优点
- 避免可读性糟糕的回调地狱
- 使得用
.then()
编写可读的顺序异步代码变得容易。 - 使用
Promise.all()
编写并行异步代码是容易的。 - 有了 Promise,这些只存在于回调编码中的情况就不会发生:
- 调用回调太早了
- 调用回调太晚(或从不调用)
- 调用回调太少或太多次了
- 无法传递任何必要的环境/参数
- 吞没可能发生的任何错误/异常
缺点
- 略微更复杂的代码(可辩论)。
- 在不支持 ES2015 的较旧浏览器中,您需要加载 polyfill 才能使用。