2016-02-29 4 views
0

Что такое хороший способ сэкономить в цикле for?

for (var i=0;i<$scope.annonces.length;i++){ 
    promises.push(Annonces.save($scope.annonces[i])).$promise; 
} 
$q.all(promises).then(function() { 
    blablabla 
} 

или

for (var i=0;i<$scope.annonces.length;i++){ 
    promises.push(Annonces.save($scope.annonces[i]).$promise); 
} 
$q.all(promises).then(function() { 
    blablabla 
} 
+0

Что случилось, когда вы их попробовали? Вы не упомянули о конкретной проблеме – charlietfl

+0

У меня странное поведение, данные из $ scope.annonces [i] не очень хорошо сохраняются, проблема возникает случайным образом. – user1260928

+0

Является ли '$ scope.announces' самим объектом' $ resource'? Имеет ли свойство '$ prom'? Если это так, цикл promises.push должен быть скован из этого '$ prom'. – georgeawg

ответ

0

Попробуйте так:

promises.push(Annonces.save($scope.annonces[i]).$promise); 
+0

вот что я сделал в первую очередь, поэтому я надеялся, что хорошим решением станет первое предложение:) – user1260928

+0

@ user1260928 Первое предложение не будет работать вообще, потому что '$ q.all' ожидает массив обещаний, и вы передаете ресурс. – karaxuna

0

Это хороший случай использования для оператора карты

var myPromises = $scope.annonces.map(function(annonce) { 
    return Annonces.save(annonce).$promise 
}); 

Это создаст массив обещаний более функциональным образом

Смежные вопросы