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