#javascript #asynchronous
#javascript #асинхронный
Вопрос:
Как мне поймать простые ошибки js в асинхронных функциях? В следующем коде функция «errorfkt» недоступна. Если я удалю ключевое слово «async» перед функцией «testfkt», я увижу ошибку ссылки в консоли. С ключевым словом «async» ошибка не видна.
document.querySelector('#btnTest').addEventListener('click', testfkt)
async function testfkt() {
errorfkt();
console.log('test');
}
https://codepen.io/Jochen99/pen/NWrEWgb?editors=1111
Во время разработки я часто вижу очень очевидные ошибки в асинхронных функциях, потому что браузер не жалуется. Есть ли способ справиться с этим?
Приветствую, Йохен
Комментарии:
1. почему вы используете
async
, пока внутри функции нетawait
функции?
Ответ №1:
Исключения в обещаниях доступны в catch
методах.
addEventListener('click', (event) => {
testfkt(event).catch(error => {
console.log(error);
});
})
Вы также можете использовать try/catch
async
await
синтаксис with /:
addEventListener('click', async (event) => {
try {
await testfkt(event)
} catch(error) {
console.log(error);
}
})
Ответ №2:
Вы можете использовать блок try catch в функции
async function testfkt() {
try {
await errorfkt();
console.log('test');
} catch(e) {
console.log(e);
}
}