gpt4 book ai didi

javascript - 链接 ngResource promise

转载 作者:行者123 更新时间:2023-11-29 15:32:37 25 4
gpt4 key购买 nike

我正在使用提供非嵌套资源 API 的 REST Api。这导致链式调用,我想做出 promise 。我从 Angular 使用 ngResource,并且在链接调用时遇到问题。思路是先获取一个事件元素的描述。我在这里请求一个 JSON,响应如下所示:

{id : 0, block : [0,3,4]} 

获得这些信息后,我尝试获取有关 block 的数据。实现看起来像这样:

Element.get({'id':state.elementID}).$promise.then( function(element) {
// Element hast block entry with array of belonging blockIDs
angular.forEach(element.block, function(blockId){
// Get all the Blocks, that have the defined ID ( Foreign key)
return Block.get({'id':blockId}).$promise;
});
}).then(function(block){
// Create an element and ADD it to the model
var uiElem = new UIElem(block.id, "#",block.name, "block");
$scope.list.push(uiElem);
angular.forEach(block.parameter, function(element){
/// Chain other calls...
.......

});
})

尽管 GET 调用从服务器获取了正确的 JSON,但第二个获取未定义 block 的问题。

我想知道我是否错误地使用了 promise 的链接,或者我使用了错误的元素

最佳答案

您没有正确地链接您的 promise 。对于每个 block ,您立即向服务器发送另一个请求。

使用 $q.all 进行链接:

    // Element hast block entry with array of belonging blockIDs
return $q.all(element.block.map(function(blockId){
// Get all the Blocks, that have the defined ID ( Foreign key)
return Block.get({'id':blockId}).$promise;
}));

这应该为您提供结果 block 的数组:}).then(函数( block ){...

关于javascript - 链接 ngResource promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33211057/

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