2017-02-14 15 views
0

$q.all()関数で使用できる約束のデータ構造を理解しようとしています。私は約束とマップの約束を与えることができることを知っていますが、それと同様の深さマップを与えることはできますか?たとえば、次のようなことをすることができます:

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"]) 
}) 

もし私ができないのであれば、このようなことをするにはどうすればよいですか?結果データのマップ内の元のレベルを知りたい。

+0

いいえ、あなたがそれに任意のオブジェクトを渡すことはできません。どのような高レベルの問題を解決しようとしていますか? – charlietfl

答えて

0

は私にとって、これは非常に簡単になりますと動作します:

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

結果はCまたはBの結果であることをどのように知っていますか? – rex

関連する問題