如何在异步函数中捕获JavaScript错误

时间:2020-11-10 09:40:59

标签: javascript asynchronous

如何在异步函数中捕获简单的js错误?在以下代码中,功能“ errorfkt”不可用。如果删除函数“ testfkt”前面的“ async”关键字,则会在控制台中看到引用错误。使用“异步”关键字,看不到错误。

document.querySelector('#btnTest').addEventListener('click', testfkt)

async function testfkt() {
  errorfkt();
  console.log('test');
}

https://codepen.io/Jochen99/pen/NWrEWgb?editors=1111

在开发过程中,我经常会在异步功能中看到非常明显的错误,因为浏览器不会抱怨。有办法解决吗?

问候, Jochen

2 个答案:

答案 0 :(得分:0)

catch方法中提供了Promise中的异常。

addEventListener('click', (event) => {
    testfkt(event).catch(error => {
        console.log(error);
    });
})

您还可以将try/catchasync / await语法一起使用:

addEventListener('click', async (event) => {
    try {
        await testfkt(event)
    } catch(error) {
        console.log(error);
    }
})

答案 1 :(得分:0)

您可以在函数中使用try catch块

async function testfkt() {
  try {
    await errorfkt();
    console.log('test');
  } catch(e) {
    console.log(e);
  }
}