Call an iterator function for each element of an array in series, ensuring that no iterator is called before the promise returned by the previous iterator is fulfilled, in effect preventing parallel execution. Like async.mapSeries, but for promises.
npm install --save promise-map-series
var mapSeries = require('promise-map-series')
mapSeries(array, iterator[, thisArg]).then(function (newArray) {
...
})
array
: An array of values (should not be promises).
iterator
: Function that returns a promise or a value for the new
array. The iterator
will be called once for each element. If iterator
returns a promise, then iterator
will only be called for the next element
once that promise is fulfilled. If the promise is rejected or iterator
throws an error, iteration will stop immediately and mapSeries
returns a
rejected promise. The iterator
function receives three arguments:
item
: The current item in the array.
index
: The current index in the array.
array
: The original array
argument.
thisArg
(optional): Value to use as this
when executing iterator
.
# promise-map-series [![Build Status](https://travis-ci.org/joliss/promise-map-series.png?branch=master)](https://travis-ci.org/joliss/promise-map-series) Call an iterator function for each element of an array in series, ensuring that no iterator is called before the promise returned by the previous iterator is fulfilled, in effect preventing parallel execution. Like [async.mapSeries](https://github.com/caolan/async#mapseriesarr-iterator-callback), but for promises. ## Installation ```bash npm install --save promise-map-series ``` ## Usage ```js var mapSeries = require('promise-map-series') mapSeries(array, iterator[, thisArg]).then(function (newArray) { ... }) ``` * **`array`**: An array of values (should not be promises). * **`iterator`**: Function that returns a promise or a value for the new array. The `iterator` will be called once for each element. If `iterator` returns a promise, then `iterator` will only be called for the next element once that promise is fulfilled. If the promise is rejected or `iterator` throws an error, iteration will stop immediately and `mapSeries` returns a rejected promise. The `iterator` function receives three arguments: * **`item`**: The current item in the array. * **`index`**: The current index in the array. * **`array`**: The original `array` argument. * **`thisArg`** (optional): Value to use as `this` when executing `iterator`.