【问题标题】:Is "catch(console.error)" a valid way of catching Promise rejections?“catch(console.error)” 是捕获 Promise 拒绝的有效方法吗?
【发布时间】:2022-01-05 11:55:22
【问题描述】:

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

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

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

【问题讨论】:

  • 为什么它不起作用?请注意如何简化为 fetch().then(console.log).catch(console.error); 或只是 fetch().then(console.log, console.error);

标签: javascript node.js promise


【解决方案1】:

是的,如果您只是想记录错误而忽略它,那么可以。

.catch 期望你将它传递给一个函数,如果 promise 拒绝,该函数将被调用并带有拒绝值。通常你会创建一个带有自定义逻辑的新函数并将其传入,但传入一个已经存在的函数也没问题,例如console.error

【讨论】:

    【解决方案2】:

    是的,没关系。这与传递错误对象然后将其记录到控制台中相同。

    【讨论】:

      猜你喜欢
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 2021-04-21
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多