gpt4 book ai didi

javascript - angular.forEach 和对象

转载 作者:可可西里 更新时间:2023-11-01 01:48:46 24 4
gpt4 key购买 nike

问题:

我正在做(我认为是但可能不是)一个简单的 angular.forEach在数组上然后使用 $resource根据返回的每个值进行调用。正如我所料,每次调用的结果都是一个对象。但是,我无法让这些对象以 angular.forEach documentation 的方式和谐地加入。演示。

但首先是一些有效的代码,然后是失败的代码。

作品:

var uniqueIds = {};
angular.forEach(object, function(key, value){
this.push(key.uniqueIds);
}, uniqueIds);
console.log(uniqueIds)
// uniqueIds equals the expected array

失败

这就是事情变得棘手的地方。现在,在下一个示例中,在 angular.forEach 中是 $resource称呼。

angular.forEach(array, function(index){
Resource.query({id:index}, function(result){
console.log(result)
// returns the expected object,
// but, as expected, I can't access the object outside the async call
});
console.log(result);
// result is undefined
});

考虑到异步性,promise 似乎可以解决问题。但事实并非如此——我真的还在异步调用中。也不分配 result$scope工作。简而言之,我似乎无法获得 Resource.query 之外的值。 .

我需要做什么?

我需要每个 $resource 的返回对象以与 angular.forEach 相同的方式调用添加一个对象(使用 angular.extend?我试过)创建了一个数组。我尝试了很多不同的方法,大多数都是基于对这里提出的一般异步问题的回答,但到目前为止都无济于事。我肯定这是从 $resource 中获取值(value)的问题打电话,但在这种情况下如何做到这一点我有点困惑。

最佳答案

是这样的吗?

var promises = [];

angular.forEach(array, function(index) {
promises.push(Resource.query(...));
});

$q.all(promises).then(function(result1, result2, result3 ...) {
// do stuff with result1, result2 ... or
// var results = Array.prototype.slice.call(arguments);
});

关于javascript - angular.forEach 和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21388741/

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