【问题标题】:Error from catch is not defined when debugging调试时未定义来自 catch 的错误
【发布时间】:2020-03-27 11:40:02
【问题描述】:

我有一个因错误而被拒绝的承诺,我正在使用try/catch 来处理它。

const foo = async () => {
  try {
    await request();
  } catch (error) {
    console.log(error.message);
    debugger;
  }
};

调试时,console.log 显示正确的错误,但如果我将鼠标移过它则显示 error 未定义。

为什么会这样?

这使得错误的调试变得非常困难。

这是working example

【问题讨论】:

  • 我不禁注意到,当我在您的示例上打开调试器时,catch () 中的error 未定义,但error.message 中的error 显示正确。奇数。
  • @matthew-e-brown 是的,我注意到了,真的很奇怪

标签: javascript reactjs google-chrome debugging async-await


【解决方案1】:

你能从App中提取handleError吗?我通过简单地调用xasync 进行了测试。它按预期工作。我不回答您问题的原因,因为我无法评论您的问题,也无法上传照片。然后发布作为答案。但无论如何,Chrome的调试器在这个功能方面应该可以很好地工作。

【讨论】:

  • 我无法提取,因为它使用了状态
  • 我是为了查明原因,你可以暂时把这个功能移出来。从示例代码中,我没有看到为什么它不能被移出。你只为onClick引用这个函数,对吧?
猜你喜欢
  • 2021-12-19
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多