(自用面试题)async/await对比Promise的优势是什么?

140 阅读1分钟
  • Promise的最大问题是代码冗余, 原来的任务被Promise包装了一下, 不管什么操作, 一眼看去都是一堆then, 原来的语义变得很不清楚;而使用async、await有着更好的语义。

  • Promise传递中间值⾮常麻烦;⽽async/await⼏乎是同步的写法,⾮常方便。

  • Promise的错误捕获⾮常冗余;而async/await可以⽤成熟的try/catch,错误处理非常友好。

  • Promise的调试非常差,由于没有代码块,你不能在⼀个返回表达式的箭头函数中设置断点,如果你在⼀个.then代码块中使⽤调试器的步进(step-over)功能,调试器并不会进⼊后续的.then代码块(REASON:调试器只能跟踪同步代码的每⼀步);而async/await调试非常友好。