2015-07-21 3 views
0

У меня есть куча запросов 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 ответа? Спасибо.

+0

Что вы подразумеваете под "все, что только замораживает?" – Jacob

+1

Функция «then» обещания принимает два аргумента, успех и обратный вызов ошибки - добавьте затем вторую функцию, чтобы поймать ваши ошибки: '.then (function (result) {// success}, function (err) {//error}); ' – Tom

+0

@Jacob выполняет остановки и' .then (function (results) {}) 'никогда не выполняется. – fivepointseven

ответ

4

Похоже, что вам необходимо обрабатывать ошибки.

$q.all([...]) 
    .then(
    function (results) { 
     // Handle success 
    }, function (err) { 
     // Handle errors 
    }); 
+0

Спасибо! Другой вопрос: Я пишу результаты запросов к локальному хранилищу. Как мне настроить обработку ошибок, чтобы пропустить 403-й ответ? – fivepointseven

+0

Похоже, вы хотите обрабатывать ответ для каждого отдельно. 'q.all' собирается произвести ошибку при первом отказе от любого из обещаний. Если вы не хотите, чтобы это произошло, я привязывал обработчик результатов к каждому запросу. – Jacob

Смежные вопросы