JavaScript .map для массива и удаление элементов, если условие выполнено
У меня есть массивqueue
что я подталкиваю объекты к нему, когда они изменяются. Если пользователь нажимаетsave
тогда я буду перебиратьqueue
и примените соответствующий вызов API для них.
Если вызов API проходит успешно, я хочу удалить элемент изqueue
иначе сохраните его внутри и уведомите пользователя о том, что некоторые элементы не были успешно сохранены. У меня в настоящее время есть это (в AngularJS)
var unsuccessfulItems = [];
var promise = queue.map(function(item) {
var defer = $q.defer();
myCallFunction( item
, function( response ) {} // Success
, function( response ) { // Error
unsuccessfulItems.push(item);
}
)
defer.resolve();
return defer.promise;
})
// Once all items have been processed
$q.all( promise ).then( function() {
queue = unsuccessfulItems;
});
Есть ли лучший способ сделать это?