Promise 的 catch 方法有什么作用?

· 约 4 分钟读完 · 第 45 / 142 章

推荐答案

Promise 的 catch 方法用于处理 Promise 被拒绝(rejected)的情况。它相当于 .then(null, rejectionHandler) 的语法糖,专门用于捕获 Promise 链中的错误。

本题详细解读

1. catch 方法的作用

catch 方法用于捕获 Promise 链中的错误。当 Promise 被拒绝时,catch 方法中的回调函数会被调用,并且可以处理错误。

2. catch 方法的语法

catch 方法接收一个回调函数作为参数,该回调函数会接收一个错误对象作为参数。

  • onRejected:一个函数,当 Promise 被拒绝时调用,接收一个错误对象作为参数。

3. catch 方法的链式调用

catch 方法可以链式调用,用于处理 Promise 链中任意位置的错误。

4. catch 方法的返回值

catch 方法返回一个新的 Promise,这意味着你可以在 catch 之后继续链式调用其他 Promise 方法。

5. catch 方法的错误传播

如果在 catch 方法中没有处理错误,或者 catch 方法本身抛出错误,错误会继续向下传播,直到被下一个 catch 捕获。

6. catch 与 then 的对比

catch 方法是 then 方法的特例,专门用于处理错误。以下两种写法是等价的:

7. 使用场景

catch 方法通常用于以下场景:

  • 捕获 Promise 链中的错误。
  • 在错误发生时提供备用值或执行备用逻辑。
  • 在错误发生时记录日志或上报错误信息。