Folks,
mam konfigurację kodu nieco jak poniżej:
$scope.init = function(){
return $q.all([resource1.query(),resource2.query(),resource3.query()])
.then(result){
$scope.data1 = result[1];
$scope.data2 = result1[2];
$scope.data3 = result[3];
console.log(data1); //prints as [$resolved: false, $then: function]
doSomething($scope.data1,$scope.data2);
}
}
byłem pod wrażeniem, że „potem” funkcja będzie wywoływana tylko wtedy, gdy wszystkie zasoby zostać rozwiązanym. Jednak to nie jest to, co widzę w moim kodzie. Jeśli wydrukuję dane1, zostanę nierozwiązany.
Jakąkolwiek wskazówkę dotyczącą tego, czego tu brakuje?
Czy 'resource1.query()', itp powrotu obietnica? ['all'] (http://docs.angularjs.org/api/ng.$q#all) oczekuje tablicy obietnic, a jeśli nie są obietnicami, zostaną uznane za natychmiastowe. –
Używam kątowego 1.15 i zwraca coś takiego [$ resolved: false, $ then: function] Wierzę, że to jest obietnica – runtimeZero
Należy zauważyć, że indeksy w tablicy wyników są oparte na zera, jak można oczekiwać od array, więc $ scope.data1 = wynik [0], itp. –