调试时未定义 catch 错误

Ven*_*sky 6 javascript debugging google-chrome async-await reactjs

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

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

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

在此输入图像描述

为什么会发生这种情况?

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

这是一个工作示例

chr*_*ove 1

我的解决方法是将错误分配给一个变量,可以调试该变量。

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