您好我想在for循环中运行$ interval
我做了什么
我知道什么 我想刷新所有的isntnaces
例如:
data=[{id:1,status:'queued'},{id:2,status:'active'},{id:3,status:'queued'},{id:4,status:'active'},{id:5,status:'queued'}];
然后id:5 instnace只是令人耳目一新但我想要所有的实例,如1,3,5
for (var i = 0; i < data.length; i++)
{
if(data[i].status =='queued')
{
var id = data[i].id;
promiseObj[id] = $interval( function(){ $scope.refreshInstance('active',id); }, 20000);
}
}
答案 0 :(得分:1)
这里的问题是使用closure inside a loop。
但在这种情况下,您可以使用更简单的forEach()循环来修复它
angular.forEach(data, function (item, idx) {
if (item.status == 'queued') {
promiseObj[item.id] = $interval(function () {
$scope.refreshInstance('active', item.id);
}, 20000);
}
});