У меня есть куча http-запросов вроде этого:
$q.all([$http({
method: 'POST',
url: urlOne,
headers: {Authorization: "Token " + jqToken}
}), $http({
method: 'POST',
url: urlTwo,
headers: {Authorization: "Token " + jqToken}
})])
.then(function (results) {
//do stuff
});
Однако urlOne и urlTwo (и множество других) могут при некоторых условиях возвращать 403. В этом случае все просто зависает, а функция() никогда не выполняется. Как я могу обрабатывать 403 ответа? Благодарю.
Похоже, вам нужно обрабатывать ошибки.
$q.all([...])
.then(
function (results) {
// Handle success
}, function (err) {
// Handle errors
});
q.all
будет выдавать ошибку при первом отклонении любого из обещаний. Если вы не хотите, чтобы это происходило, я бы прикрепил обработчик результатов к каждому запросу.
then
функция обещания принимает два аргумента: успех и обратный вызов ошибки - добавьте затем вторую функцию, чтобы перехватить ваши ошибки:.then(function(result) { // success }, function(err) { // error });