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;
});

Есть ли лучший способ сделать это?

Ответы на вопрос(2)

Ваш ответ на вопрос