gpt4 book ai didi

angularjs - Angular 资源调用和 $q

转载 作者:行者123 更新时间:2023-12-03 11:06:04 26 4
gpt4 key购买 nike

各位,

我的代码设置如下:

$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);
}
}

我的印象是只有在所有资源都得到解决时才会调用“then”函数。然而,这不是我在代码中看到的。如果我打印 data1,我会无法解决。

关于我在这里缺少什么的任何线索?

最佳答案

我遇到了这个问题,这很令人困惑。问题似乎是调用资源操作实际上并没有返回 http promise ,而是一个空引用(当数据从服务器返回时填充 - 请参阅 the $resource docs 的返回值部分)。

我不确定为什么这会导致 .then(result) 返回一组 Unresolved promise ,但要获得每个资源的 promise ,您需要使用 resource1.query().$promise .重写你的例子:

$scope.init = function() {
return $q.all([resource1.query().$promise, resource2.query().$promise, resource3.query().$promise])
.then( function(result) {
$scope.data1 = result[0];
$scope.data2 = result[1];
$scope.data3 = result[2];

console.log($scope.data1);

doSomething($scope.data1,$scope.data2);
})
}

我希望这可以节省别人的时间。

关于angularjs - Angular 资源调用和 $q,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18646912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com