2017-02-14 79 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