Вам следует дождаться выполнения, которое позволит отследить возможные ошибки. Это связано с тем, что обещание, которое создается внутри вашего блока async
, ведет себя так, как должно себя вести обещание - в случае каких-либо ошибок обещание разрешается как rejected
и передает исключение в конвейер продолжению, которое вы присоединяете к отклоняя путь.
Два способа:
Сначала - добавьте явное then
к вашему обещанию:
async function error1(){
console.log('Fn async error: before')
let a=undefined
a.b=1
console.log('after')
}
error1().catch( e => {
console.log( 'error: ' + e);
} );
Второй - сделать блок try
- catch
вокруг await
async function error1(){
console.log('Fn async error: before')
let a=undefined
a.b=1
console.log('after')
}
(async function() {
try {
await error1();
}
catch (e) {
console.log( 'error: ' + e);
}
}());