86 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# run-parallel [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
 | 
						|
 | 
						|
[travis-image]: https://img.shields.io/travis/feross/run-parallel/master.svg
 | 
						|
[travis-url]: https://travis-ci.org/feross/run-parallel
 | 
						|
[npm-image]: https://img.shields.io/npm/v/run-parallel.svg
 | 
						|
[npm-url]: https://npmjs.org/package/run-parallel
 | 
						|
[downloads-image]: https://img.shields.io/npm/dm/run-parallel.svg
 | 
						|
[downloads-url]: https://npmjs.org/package/run-parallel
 | 
						|
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
 | 
						|
[standard-url]: https://standardjs.com
 | 
						|
 | 
						|
### Run an array of functions in parallel
 | 
						|
 | 
						|
 [](https://saucelabs.com/u/run-parallel)
 | 
						|
 | 
						|
### install
 | 
						|
 | 
						|
```
 | 
						|
npm install run-parallel
 | 
						|
```
 | 
						|
 | 
						|
### usage
 | 
						|
 | 
						|
#### parallel(tasks, [callback])
 | 
						|
 | 
						|
Run the `tasks` array of functions in parallel, without waiting until the previous
 | 
						|
function has completed. If any of the functions pass an error to its callback, the main
 | 
						|
`callback` is immediately called with the value of the error. Once the `tasks` have
 | 
						|
completed, the results are passed to the final `callback` as an array.
 | 
						|
 | 
						|
It is also possible to use an object instead of an array. Each property will be run as a
 | 
						|
function and the results will be passed to the final `callback` as an object instead of
 | 
						|
an array. This can be a more readable way of handling the results.
 | 
						|
 | 
						|
##### arguments
 | 
						|
 | 
						|
- `tasks` - An array or object containing functions to run. Each function is passed a
 | 
						|
`callback(err, result)` which it must call on completion with an error `err` (which can
 | 
						|
be `null`) and an optional `result` value.
 | 
						|
- `callback(err, results)` - An optional callback to run once all the functions have
 | 
						|
completed. This function gets a results array (or object) containing all the result
 | 
						|
arguments passed to the task callbacks.
 | 
						|
 | 
						|
##### example
 | 
						|
 | 
						|
```js
 | 
						|
var parallel = require('run-parallel')
 | 
						|
 | 
						|
parallel([
 | 
						|
  function (callback) {
 | 
						|
    setTimeout(function () {
 | 
						|
      callback(null, 'one')
 | 
						|
    }, 200)
 | 
						|
  },
 | 
						|
  function (callback) {
 | 
						|
    setTimeout(function () {
 | 
						|
      callback(null, 'two')
 | 
						|
    }, 100)
 | 
						|
  }
 | 
						|
],
 | 
						|
// optional callback
 | 
						|
function (err, results) {
 | 
						|
  // the results array will equal ['one','two'] even though
 | 
						|
  // the second function had a shorter timeout.
 | 
						|
})
 | 
						|
```
 | 
						|
 | 
						|
This module is basically equavalent to
 | 
						|
[`async.parallel`](https://github.com/caolan/async#paralleltasks-callback), but it's
 | 
						|
handy to just have the one function you need instead of the kitchen sink. Modularity!
 | 
						|
Especially handy if you're serving to the browser and need to reduce your javascript
 | 
						|
bundle size.
 | 
						|
 | 
						|
Works great in the browser with [browserify](http://browserify.org/)!
 | 
						|
 | 
						|
### see also
 | 
						|
 | 
						|
- [run-auto](https://github.com/feross/run-auto)
 | 
						|
- [run-parallel-limit](https://github.com/feross/run-parallel-limit)
 | 
						|
- [run-series](https://github.com/feross/run-series)
 | 
						|
- [run-waterfall](https://github.com/feross/run-waterfall)
 | 
						|
 | 
						|
### license
 | 
						|
 | 
						|
MIT. Copyright (c) [Feross Aboukhadijeh](http://feross.org).
 |