调试时捕获错误未定义

6
我有一个被错误拒绝的承诺,并且我正在使用 try/catch 来处理它。
const foo = async () => {
  try {
    await request();
  } catch (error) {
    console.log(error.message);
    debugger;
  }
};

在调试时,console.log 显示正确的错误信息,但如果我将鼠标移到上面,它会显示 error 未定义。

enter image description here

为什么会发生这种情况?

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

这里有一个工作示例


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

1

我的解决方法是将错误赋值给一个变量,这样就可以调试这个变量。

const foo = async () => {
  try {
    await request();
  } catch (error) {
    let myError = error; // <--myError is visible in the debugger!!!    
    console.log(error.message);
    debugger;
  }
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接