2 module.exports = function(Promise, INTERNAL) {
3 var PromiseReduce = Promise.reduce;
4 var PromiseAll = Promise.all;
6 function promiseAllThis() {
7 return PromiseAll(this);
10 function PromiseMapSeries(promises, fn) {
11 return PromiseReduce(promises, fn, INTERNAL, INTERNAL);
14 Promise.prototype.each = function (fn) {
15 return this.mapSeries(fn)
16 ._then(promiseAllThis, undefined, undefined, this, undefined);
19 Promise.prototype.mapSeries = function (fn) {
20 return PromiseReduce(this, fn, INTERNAL, INTERNAL);
23 Promise.each = function (promises, fn) {
24 return PromiseMapSeries(promises, fn)
25 ._then(promiseAllThis, undefined, undefined, promises, undefined);
28 Promise.mapSeries = PromiseMapSeries;