2016-04-22 8 views
0

lese ich einige Tutorial auf Angularjs und kam in diesem Ausdruck:Was bedeutet es, 2 Funktionen in '.then()' zu übergeben? (Angularjs)

.then(handleRequest, handleRequest) 

Ich habe mich gefragt, was es 2 der gleichen Funktionen in .then passieren bedeutet()?

Hier ist mehr Kontext:

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) 
.... 
})(); 

Und das originale Tutorial finden Sie hier: https://thinkster.io/angularjs-jwt-auth

+1

Werfen Sie einen Blick [hier] (http://stackoverflow.com/a/24663315/1048572). In diesem Fall sieht es wie ein Versuch aus, das Verhalten von '.finally (handleRequest)' zu erhalten, das eigentlich verwendet werden sollte. – Bergi

+0

mögliches Duplikat von [Bei Fehler verwechseln und bei Promise ablehnen] (http://stackoverflow.com/q/35282803/1048572) – Bergi

Antwort

1

erste für successCallback und die zweite für errorCallback. So

// 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. 
}); 

verspricht ein bisschen komplexes Muster zu verstehen. Die beste Ressource für mich

Promises in AngularJS, Explained as a Cartoon

3

Die then Methode ist definiert als:

promise.then(onFulfilled, onRejected)

Das erste Argument wird aufgerufen, wenn das Versprechen erfüllt ist.

Das zweite Argument wird aufgerufen, wenn das Versprechen abgelehnt wird.

Wenn Sie dieselbe Callback-Funktion wie beide Argumente übergeben, bedeutet dies, dass der Autor dieselbe Funktion sowohl für die Erfüllung als auch für die Ablehnung des Versprechens vorgesehen hat.

Lesen Sie the complete spec für weitere Details.

Verwandte Themen