|
# promise-map-series |
|
|
|
[](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`. |
|
|