JavaScript .map em uma matriz e remover itens se a condição for atendida
Eu tenho uma matrizqueue
que eu empurro objetos para ele quando são modificados. Se o usuário pressionarsave
, então percorrerei oqueue
e aplique a chamada de API apropriada para eles.
Se a chamada da API for concluída com êxito, desejo remover o item doqueue
, caso contrário, mantenha-o dentro e notifique o usuário de que alguns itens não foram salvos com sucesso. Atualmente, tenho isso (no AngularJS)
var unsuccessfu,lItems = [];
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;
});
Existe um jeito melhor de fazer isso?