捕获$ .getJSON()。done()内部引发的错误

时间:2019-03-24 22:02:55

标签: javascript asynchronous try-catch getjson

我正在访问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块之前完成执行?

0 个答案:

没有答案