, " Promise.all()" ", , Promise.all(), "....
Promises , .
. , promises , :
.
"-" .
- , - - .
function BatchCanceller() {
var dfrd;
return function(promises) {
if(dfrd) {
dfrd.reject(new Error('cancelled'));
}
dfrd = $q.defer();
$q.all(promises).then(dfrd.resolve);
return $q.all(promises.concat(dfrd.promise))
.then(function(results) {
return results.splice(0, results.length-1);
});
};
}
var batchCanceller = new BatchCanceller();
var promises = [];
batchCanceller(promises).then(function(results) {
console.log(results);
}).catch(function(error) {
console.log(error);
});
, , BatchCanceller() Angular factory.