You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			|  | 3 years ago | |
|---|---|---|
| .. | ||
| LICENSE | 3 years ago | |
| README.md | 3 years ago | |
| all.js | 3 years ago | |
| allLimit.js | 3 years ago | |
| allSeries.js | 3 years ago | |
| angelFall.js | 3 years ago | |
| any.js | 3 years ago | |
| anyLimit.js | 3 years ago | |
| anySeries.js | 3 years ago | |
| apply.js | 3 years ago | |
| applyEach.js | 3 years ago | |
| applyEachSeries.js | 3 years ago | |
| async.js | 3 years ago | |
| async.min.js | 3 years ago | |
| asyncify.js | 3 years ago | |
| auto.js | 3 years ago | |
| autoInject.js | 3 years ago | |
| cargo.js | 3 years ago | |
| compose.js | 3 years ago | |
| concat.js | 3 years ago | |
| concatLimit.js | 3 years ago | |
| concatSeries.js | 3 years ago | |
| constant.js | 3 years ago | |
| createLogger.js | 3 years ago | |
| detect.js | 3 years ago | |
| detectLimit.js | 3 years ago | |
| detectSeries.js | 3 years ago | |
| dir.js | 3 years ago | |
| doDuring.js | 3 years ago | |
| doUntil.js | 3 years ago | |
| doWhilst.js | 3 years ago | |
| during.js | 3 years ago | |
| each.js | 3 years ago | |
| eachLimit.js | 3 years ago | |
| eachOf.js | 3 years ago | |
| eachOfLimit.js | 3 years ago | |
| eachOfSeries.js | 3 years ago | |
| eachSeries.js | 3 years ago | |
| ensureAsync.js | 3 years ago | |
| every.js | 3 years ago | |
| everyLimit.js | 3 years ago | |
| everySeries.js | 3 years ago | |
| fast.js | 3 years ago | |
| filter.js | 3 years ago | |
| filterLimit.js | 3 years ago | |
| filterSeries.js | 3 years ago | |
| find.js | 3 years ago | |
| findLimit.js | 3 years ago | |
| findSeries.js | 3 years ago | |
| foldl.js | 3 years ago | |
| foldr.js | 3 years ago | |
| forEach.js | 3 years ago | |
| forEachLimit.js | 3 years ago | |
| forEachOf.js | 3 years ago | |
| forEachOfLimit.js | 3 years ago | |
| forEachOfSeries.js | 3 years ago | |
| forEachSeries.js | 3 years ago | |
| forever.js | 3 years ago | |
| groupBy.js | 3 years ago | |
| groupByLimit.js | 3 years ago | |
| groupBySeries.js | 3 years ago | |
| inject.js | 3 years ago | |
| iterator.js | 3 years ago | |
| log.js | 3 years ago | |
| map.js | 3 years ago | |
| mapLimit.js | 3 years ago | |
| mapSeries.js | 3 years ago | |
| mapValues.js | 3 years ago | |
| mapValuesLimit.js | 3 years ago | |
| mapValuesSeries.js | 3 years ago | |
| memoize.js | 3 years ago | |
| nextTick.js | 3 years ago | |
| omit.js | 3 years ago | |
| omitLimit.js | 3 years ago | |
| omitSeries.js | 3 years ago | |
| package.json | 3 years ago | |
| parallel.js | 3 years ago | |
| parallelLimit.js | 3 years ago | |
| pick.js | 3 years ago | |
| pickLimit.js | 3 years ago | |
| pickSeries.js | 3 years ago | |
| priorityQueue.js | 3 years ago | |
| queue.js | 3 years ago | |
| race.js | 3 years ago | |
| reduce.js | 3 years ago | |
| reduceRight.js | 3 years ago | |
| reflect.js | 3 years ago | |
| reflectAll.js | 3 years ago | |
| reject.js | 3 years ago | |
| rejectLimit.js | 3 years ago | |
| rejectSeries.js | 3 years ago | |
| retry.js | 3 years ago | |
| retryable.js | 3 years ago | |
| safe.js | 3 years ago | |
| select.js | 3 years ago | |
| selectLimit.js | 3 years ago | |
| selectSeries.js | 3 years ago | |
| seq.js | 3 years ago | |
| series.js | 3 years ago | |
| setImmediate.js | 3 years ago | |
| some.js | 3 years ago | |
| someLimit.js | 3 years ago | |
| someSeries.js | 3 years ago | |
| sortBy.js | 3 years ago | |
| sortByLimit.js | 3 years ago | |
| sortBySeries.js | 3 years ago | |
| timeout.js | 3 years ago | |
| times.js | 3 years ago | |
| timesLimit.js | 3 years ago | |
| timesSeries.js | 3 years ago | |
| transform.js | 3 years ago | |
| transformLimit.js | 3 years ago | |
| transformSeries.js | 3 years ago | |
| tryEach.js | 3 years ago | |
| unmemoize.js | 3 years ago | |
| until.js | 3 years ago | |
| waterfall.js | 3 years ago | |
| whilst.js | 3 years ago | |
| wrapSync.js | 3 years ago | |
		
			
				
				README.md
			
		
		
			
			
		
	
	Neo-Async
   
Neo-Async is thought to be used as a drop-in replacement for Async, it almost fully covers its functionality and runs faster.
Benchmark is here!
Bluebird's benchmark is here!
Code Coverage
Installation
In a browser
<script src="async.min.js"></script>
In an AMD loader
require(['async'], function(async) {});
Promise and async/await
I recommend to use Aigle.
It is optimized for Promise handling and has almost the same functionality as neo-async.
Node.js
standard
$ npm install neo-async
var async = require('neo-async');
replacement
$ npm install neo-async
$ ln -s ./node_modules/neo-async ./node_modules/async
var async = require('async');
Bower
bower install neo-async
Feature
* not in Async
Collections
- each
- eachSeries
- eachLimit
- forEach->- each
- forEachSeries->- eachSeries
- forEachLimit->- eachLimit
- eachOf->- each
- eachOfSeries->- eachSeries
- eachOfLimit->- eachLimit
- forEachOf->- each
- forEachOfSeries->- eachSeries
- eachOfLimit->- forEachLimit
- map
- mapSeries
- mapLimit
- mapValues
- mapValuesSeries
- mapValuesLimit
- filter
- filterSeries
- filterLimit
- select->- filter
- selectSeries->- filterSeries
- selectLimit->- filterLimit
- reject
- rejectSeries
- rejectLimit
- detect
- detectSeries
- detectLimit
- find->- detect
- findSeries->- detectSeries
- findLimit->- detectLimit
- pick*
- pickSeries*
- pickLimit*
- omit*
- omitSeries*
- omitLimit*
- reduce
- inject->- reduce
- foldl->- reduce
- reduceRight
- foldr->- reduceRight
- transform
- transformSeries*
- transformLimit*
- sortBy
- sortBySeries*
- sortByLimit*
- some
- someSeries
- someLimit
- any->- some
- anySeries->- someSeries
- anyLimit->- someLimit
- every
- everySeries
- everyLimit
- all->- every
- allSeries->- every
- allLimit->- every
- concat
- concatSeries
- concatLimit*
Control Flow
- parallel
- series
- parallelLimit
- tryEach
- waterfall
- angelFall*
- angelfall->- angelFall*
- whilst
- doWhilst
- until
- doUntil
- during
- doDuring
- forever
- compose
- seq
- applyEach
- applyEachSeries
- queue
- priorityQueue
- cargo
- auto
- autoInject
- retry
- retryable
- iterator
- times
- timesSeries
- timesLimit
- race
Utils
- apply
- setImmediate
- nextTick
- memoize
- unmemoize
- ensureAsync
- constant
- asyncify
- wrapSync->- asyncify
- log
- dir
- timeout
- reflect
- reflectAll
- createLogger
Mode
Benchmark
How to check
$ node perf
Environment
- Darwin 17.3.0 x64
- Node.js v8.9.4
- async v2.6.0
- neo-async v2.5.0
- benchmark v2.1.4
Result
The value is the ratio (Neo-Async/Async) of the average speed.
Collections
| function | benchmark | 
|---|---|
| each/forEach | 2.43 | 
| eachSeries/forEachSeries | 1.75 | 
| eachLimit/forEachLimit | 1.68 | 
| eachOf | 3.29 | 
| eachOfSeries | 1.50 | 
| eachOfLimit | 1.59 | 
| map | 3.95 | 
| mapSeries | 1.81 | 
| mapLimit | 1.27 | 
| mapValues | 2.73 | 
| mapValuesSeries | 1.59 | 
| mapValuesLimit | 1.23 | 
| filter | 3.00 | 
| filterSeries | 1.74 | 
| filterLimit | 1.17 | 
| reject | 4.59 | 
| rejectSeries | 2.31 | 
| rejectLimit | 1.58 | 
| detect | 4.30 | 
| detectSeries | 1.86 | 
| detectLimit | 1.32 | 
| reduce | 1.82 | 
| transform | 2.46 | 
| sortBy | 4.08 | 
| some | 2.19 | 
| someSeries | 1.83 | 
| someLimit | 1.32 | 
| every | 2.09 | 
| everySeries | 1.84 | 
| everyLimit | 1.35 | 
| concat | 3.79 | 
| concatSeries | 4.45 | 
Control Flow
| funciton | benchmark | 
|---|---|
| parallel | 2.93 | 
| series | 1.96 | 
| waterfall | 1.29 | 
| whilst | 1.00 | 
| doWhilst | 1.12 | 
| until | 1.12 | 
| doUntil | 1.12 | 
| during | 1.18 | 
| doDuring | 2.42 | 
| times | 4.25 | 
| auto | 1.97 | 
