Я обращаюсь и делаю кое-что с файлом JSON. Если вызов ajax завершается неудачно, ошибка может быть перехвачена .fail()
, но когда я выкидываю ошибку внутри .done()
, она не перехватывается.
function myFunc() {
$.getJSON('data.json')
.done(db => {
/* do stuff with JSON */
if (condition) {
throw Error(message);
}
})
.fail(error => {
throw Error("getJSON request failed.\n" + error);
})
}
try {
myFunc();
} catch (e) {
/* handle error */
}
Я понимаю, что это потому, что функция асинхронная. Как я могу убедиться, что эта ошибка перехвачена и что myFunch () завершает выполнение перед завершением блока try-catch?