2016-05-05 14 views
-4

ich habe zwei FunktionenAngular Versprechen zwischen zwei Funktionen

var firstFunction = function(aPromise) { 
    //Do stuff 

    return aPromise.resolve(); 
} 


var secondFunction = function(i) { 

    var defer = $q.defer; 

    //Do stuff with i (an index) - used for anadromic calls. 

    firstFunction(defer).promise.then(function() { 

     i++; 
     secondFunction(i); 

    }) 

} 

Ich brauche die zweite Funktion das Versprechen von der ersten Funktion zu warten itslef aufzurufen. Ist diese Syntax korrekt?

Nach Anfrage füge ich den Zweck meines Codes hinzu.

Ich habe:

Kategorien> Produkte> Favoriten, die ich von Server verlangen.

Für jede Kategorie muss ich die Produkte und für jedes Produkt muss ich überprüfen, ob es Favorit ist. Das Schlimme ist, dass ich in der aktuellen Situation viele Anrufe tätigen muss, die alle asynchron sind und auf die andere warten müssen.

+0

Was ist das "i" in der zweiten Funktion? – Raghuveer

+0

ein Index, der für die Funktionalität verwendet wird – Korte

Antwort

0

Ich benutze unten Code, der für mich arbeitet. Ich rufe diesen Code in einem anderen Verfahren, das darauf wartet, bis ich die Antwort vom Server

var promise = [XYZService.locations($scope.newrecord.state.Text)] 
$q.all(promise).then(function (data) { 
$scope.addnewrecord.locations = data[0]; 
}); 

Hier erhalten, basierend auf Zustand erhalte ich entsprechende Stellen von Server und Bindung, die Standorte zu einem Modell

Verwandte Themen