JQuery несколько Deferreds - как обработать остальное, если один отклонен

У меня есть $.when Оператор jquery, ожидающий 3 запроса ajax для возврата, прежде чем он выполнит свой следующий набор функций. Проблема в том, что если один из этих запросов возвращает ошибку 500, то система не обрабатывает следующий набор функций, и система зависает в этот момент.

Есть ли способ заставить вызов ajax перешагнуть через ошибку 500 в выражении $.when.

Все функции ajax определены вне $.when как отдельные функции, и все они имеют внутри функции успешного выполнения и обработки ошибок.

Вот посмотрите на код:

$.when(
    ajaxCall1(),
    ajaxCall2(),
    ajaxCall3()
).done(function(){
    // functions that follow
});

так что если какой-либо из вызовов ajax завершится неудачно, то готовый процесс не будет завершен. Я думал, что даже если вызов ajax потерпит неудачу, он все равно вернет обработку ошибок.

Полученная ошибка 500 является принудительной из-за блока разрешений от API.

1 ответ

Решение

done вызывается только когда функции в when не возвращает ошибки. Может быть, вы могли бы использовать then вместо done и вызвать одну и ту же функцию для обоих doneFilter а также failFilter,

Другие вопросы по тегам