Поймать ошибку, брошенную в $ .getJSON (). Done () - PullRequest
0 голосов
/ 25 марта 2019

Я обращаюсь и делаю кое-что с файлом 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?

...