提问者:小点点

如何避免仅使用顶层try/catch的UnhandledPromiseRejectionWarning?


理想的情况下,我希望我的应用程序只有顶级的try/catch,大多数的例外只是冒出来。但有了它,您将得到UnhandledPromiseRejectionWarning。

function example() {
  return new Promise((resolve, reject) => {
    reject("test reject");
  });
}

try {
  example().then(r => console.log(`.then(${r})`));
} catch (e) {
  console.error(`try/catch(${e})`);
}

我的问题是,而不是再放一个。后面抓。那么,有没有办法绕过?谢谢!


共1个答案

匿名用户

您可以等待您的承诺(在异步函数中,但可以设置为顶级),以便您的catch块可以捕获异常,或者创建一个全局unhandledpromise处理程序。

null

function example() {
    return new Promise((resolve, reject) => {
      reject("test reject");
    });
  }
  
  (async () => {
  try {
    await example()
  } catch (e) {
    console.error(`try/catch(${e})`);
  }
})()