#Usage: var promises = [promise1, promise2];
function allSuccess(result1, result2)
{
// do stuff with results
}
function error()
{
// something went wrong
}
$q
.all(promises)
.spread(allSuccess, error);
angular | |
.module('$q-spread', []) | |
.config(function ($provide) { | |
$provide.decorator('$q', function ($delegate) { | |
var originalAll = $delegate.all; | |
$delegate.all = function (promises) { | |
var promise = originalAll(promises); | |
/** | |
* Spread method, proxies to `then` but spreads the results for the resolve callback | |
* @param {Function} resolve | |
* @param {Function} reject | |
*/ | |
promise.spread = function (resolve, reject) { | |
function spread(data) { | |
resolve.apply(void 0, data); | |
} | |
promise.then(spread, reject); | |
}; | |
return promise; | |
}; | |
return $delegate; | |
}); | |
}); |