Что значит передать 2 функции в '.then ()'? (Angular.js)

0

Я читаю некоторый учебник по angular.js и наткнулся на это выражение:

.then(handleRequest, handleRequest)

Мне было интересно, что значит передать 2 из тех же функций в.then()?

Здесь больше контекста:

function MainCtrl(user, auth) {
  var self = this;

  function handleRequest(res) {
    var token = res.data ? res.data.token : null;
    if(token) { console.log('JWT:', token); }
    self.message = res.data.message;
  }

  self.login = function() {
    user.login(self.username, self.password)
      .then(handleRequest, handleRequest)
  }

  ...

}

angular.module('app', [])
.controller('Main', MainCtrl)
....
})();

И исходное руководство можно найти здесь: https://thinkster.io/angularjs-jwt-auth

  • 1
    Посмотри сюда . В этом случае это выглядит как попытка получить поведение .finally(handleRequest) которое на самом деле должно было использоваться.
  • 0
    возможный дубликат Confuse об ошибке и отклонение в Promise
Теги:
angular-promise

2 ответа

1
Лучший ответ

первый для successCallback и второй для errorCallback. Так

// Simple GET request example:
$http({
 method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});

Обещает немного сложный образ, чтобы понять. Лучший ресурс для меня

Обещания в AngularJS, объясненные как мультфильм

3

then метод определяется как:

promise.then(onFulfilled, onRejected)

Первый аргумент вызывается, когда выполняется обещание.

Второй аргумент вызывается, когда обещание отклоняется.

Передача той же функции обратного вызова, что и оба аргумента, означает, что автор намеревался использовать одну и ту же функцию для обработки как выполнения, так и отказа от обещания.

Прочтите полную спецификацию для получения более подробной информации.

Ещё вопросы

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