2016-04-22 1 views
0

Я читаю некоторые учебник по angular.js и наткнулся на это выражение:Что значит передать 2 функции в '.then()'? (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

Посмотрите [над здесь] (http://stackoverflow.com/a/24663315/1048572). В этом случае это похоже на попытку получить поведение '.finally (handleRequest)', которое должно быть действительно использовано. – Bergi

+0

Возможный дубликат [Confuse about error and reject in Promise] (http://stackoverflow.com/q/35282803/1048572) – Bergi

ответ

1

первый для успехаCallback и второй для 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. 
}); 

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

Promises in AngularJS, Explained as a Cartoon

3

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

promise.then(onFulfilled, onRejected)

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

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

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

Прочтите the complete spec для получения более подробной информации.