如何在异步函数中捕获简单的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
答案 0 :(得分:0)
catch
方法中提供了Promise中的异常。
addEventListener('click', (event) => {
testfkt(event).catch(error => {
console.log(error);
});
})
您还可以将try/catch
与async
/ 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);
}
}