捕获错误有几种方法可用。一种是使用 then/catch,另一种是使用 try/catch。两种方式都可以与 promises 和 async/await 互换使用,但这些方法似乎是各自最常用的约定。
使用 async/await 的一个主要优势是错误堆栈追踪。使用 promise 时,一旦解析了 B,我们就不再在堆栈追踪中拥有 A 的上下文。因此如果 B 或 C 抛出异常,我们就不再知道 A 的上下文了。
但使用 async/await 时,A 在等待 B 解析时会被挂起。因此如果 B 或 C 抛出异常,我们在堆栈追踪中就能知道错误是来自 A 的。