"catch(console.error)" 是捕获 Promise 拒绝的有效方法吗?

Is "catch(console.error)" a valid way of catching Promise rejections?

假设我有一个 Promise 并像这样捕获错误:

fetch().then(data => {
  console.log(data);
}).catch(console.error);

这是一个有效的代码吗?我见过有人这样做,但我不明白 catch(console.error) 是如何工作的。

是的,如果您只想记录错误并忽略它,那是可行的。

.catch 期望您将它传递到一个函数中,如果承诺拒绝,则将使用拒绝值调用该函数。通常,您会创建一个具有自定义逻辑的新函数并将其传入,但传入一个已经存在的函数也没关系,例如 console.error.

是的,这与传递错误对象然后将其记录到控制台完全相同right.It。