63 lines
1.5 KiB
Markdown
63 lines
1.5 KiB
Markdown
|
# each-async [](https://travis-ci.org/sindresorhus/each-async)
|
||
|
|
||
|
> Async concurrent iterator (async forEach)
|
||
|
|
||
|
Like [async.each()](https://github.com/caolan/async#eacharr-iterator-callback), but tiny.
|
||
|
|
||
|
I often use `async.each()` for doing async operations when iterating, but I almost never use the other gadzillion methods in `async`.
|
||
|
|
||
|
Async iteration is one of the most used async control flow patterns.
|
||
|
|
||
|
|
||
|
## Install
|
||
|
|
||
|
```sh
|
||
|
$ npm install --save each-async
|
||
|
```
|
||
|
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```js
|
||
|
var eachAsync = require('each-async');
|
||
|
|
||
|
eachAsync(['foo','bar','baz'], function (item, index, done) {
|
||
|
console.log(item, index);
|
||
|
done();
|
||
|
}, function (error) {
|
||
|
console.log('finished');
|
||
|
});
|
||
|
//=> foo 0
|
||
|
//=> bar 1
|
||
|
//=> baz 2
|
||
|
//=> finished
|
||
|
```
|
||
|
|
||
|
|
||
|
## API
|
||
|
|
||
|
### eachAsync(array, callback, finishedCallback)
|
||
|
|
||
|
#### array
|
||
|
|
||
|
The array you want to iterate.
|
||
|
|
||
|
#### callback(item, index, done)
|
||
|
|
||
|
A function which is called for each item in the array with the following arguments:
|
||
|
|
||
|
- `item`: the current item in the array
|
||
|
- `index`: the current index
|
||
|
- `done([error])`: call this when you're done with an optional error. Supplying anything other than `undefined`/`null` will stop the iteration.
|
||
|
|
||
|
Note that order is not guaranteed since each item is handled concurrently.
|
||
|
|
||
|
#### finishedCallback(error)
|
||
|
|
||
|
A function which is called when the iteration is finished or on the first error. First argument is the error passed from `done()` in the `callback`.
|
||
|
|
||
|
|
||
|
## License
|
||
|
|
||
|
MIT © [Sindre Sorhus](http://sindresorhus.com)
|