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
,