2017-02-14 5 views
0

Ich versuche herauszufinden, welche Datenstruktur von Versprechen ich in $q.all() Funktion verwenden kann. Ich weiß, dass ich ihm eine Reihe von Versprechen und eine Karte der Verheißungen geben kann, aber kann ich ihm auch eine detaillierte Tiefenkarte geben? zB kann ich so etwas wie:

var map = {}; 
map["A"] = {}; 
map["A"]["B"] = MyService.getPromise(); 

$q.all(map).then(function(resultMap){ 
    // does resultMap match the structure of the input map? 
    console.debug(resultMap["A"]["B"]) 
}) 

Und wenn ich kann nicht, was ist die vorgeschlagene Art und Weise, so etwas zu tun? Ich würde gerne die ursprüngliche Ebene in der Karte meiner resultierenden Daten kennen.

+0

Nein, Sie nicht ein beliebiges Objekt, um es passieren kann. Welches Problem auf höherer Ebene versuchen Sie zu lösen? – charlietfl

Antwort

0

Für mich sieht ziemlich einfach und funktioniert:

var promises = []; 

promises.push(MyService.getPromise().then(function(result) { 
    map["A"]["B"] = result; 
})); 

promises.push(MyService.getPromise().then(function(result) { 
    map["A"]["C"] = result; 
})); 

... 

$q.all(promises).then(function() { 
    // map is initialized here 
}) 
+0

Woher wissen Sie, dass das Ergebnis für C oder B ist? – rex

Verwandte Themen