循环包含承诺的数组

时间:2015-06-23 08:25:30

标签: javascript angularjs angular-promise

即时建立一个angularjs应用程序,在 $scope.list存储的图书项目由特定的ngResource工厂创建。我只需从列表中切片就可以删除一些物品。

$scope.list.splice(pos,1);

稍后在代码中迭代现有元素并希望用以下内容保存它们:

for (var elem in $scope.list ){
     $scope.list[elem].$save();
 }

问题是,如果列表为空,我在$promise中有一个$scope.list 我应该如何处理,以便不为具有承诺的元素调用save?

1 个答案:

答案 0 :(得分:1)

您应首先过滤数组,然后将项目保存在已过滤的数组中:

$scope.list
.filter(function (elem) {
  return typeof elem.then !== 'function';
})
.forEach(function (elem) {
  elem.$save();
});