AngularJS: При каких конкретных обстоятельствах обещание, возвращаемое $ http, отклоняется?

0

Я новичок в Angular (или JavaScript вообще), и у меня есть немой вопрос. Я понимаю, как работают обещания, но при каких конкретных обстоятельствах будет отклонено обещание, возвращенное запросом $http (PUT или GET или что-то еще)? Я уверен, что если запрос истечет, то обещание определенно будет отвергнуто; но как насчет других ошибок, таких как 404 или 403? Я не мог найти такую информацию из Angular Docs... Большое спасибо!

Теги:
promise
http

1 ответ

1

Если каким-либо образом возникнет ошибка $ http, обещание будет отклонено. $ HttpProvider основан на шаблоне Interceptor, где каждый запрос/ответ проходит через конвейер, который обрабатывает эту ошибку.

По умолчанию Interceptor, встроенный в AngularJS, сделает что-то вроде этого, чтобы отклонить обещание:

'responseError': function(rejection) {
  // do something on error
  if (canRecover(rejection)) {
    return responseOrNewPromise
  }
  return $q.reject(rejection); //<------ Rejecting the Promise here given a http error
}

Вы можете создавать и прикреплять свой собственный Interceptor внутри $ httpProvider для обработки конкретных ошибок (400, 500 и т.д.). Взгляните на раздел " Перехватчик" в разделе документации по http.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню