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.
		
		
		
		
		
			
		
			
				
					77 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					77 lines
				
				1.2 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								/* eslint no-console: "off" */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var asynckit = require('./')
							 | 
						||
| 
								 | 
							
								  , async    = require('async')
							 | 
						||
| 
								 | 
							
								  , assert   = require('assert')
							 | 
						||
| 
								 | 
							
								  , expected = 0
							 | 
						||
| 
								 | 
							
								  ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var Benchmark = require('benchmark');
							 | 
						||
| 
								 | 
							
								var suite = new Benchmark.Suite;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var source = [];
							 | 
						||
| 
								 | 
							
								for (var z = 1; z < 100; z++)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  source.push(z);
							 | 
						||
| 
								 | 
							
								  expected += z;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								suite
							 | 
						||
| 
								 | 
							
								// add tests
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.add('async.map', function(deferred)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  var total = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  async.map(source,
							 | 
						||
| 
								 | 
							
								  function(i, cb)
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    setImmediate(function()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      total += i;
							 | 
						||
| 
								 | 
							
								      cb(null, total);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  function(err, result)
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    assert.ifError(err);
							 | 
						||
| 
								 | 
							
								    assert.equal(result[result.length - 1], expected);
							 | 
						||
| 
								 | 
							
								    deferred.resolve();
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}, {'defer': true})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.add('asynckit.parallel', function(deferred)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  var total = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  asynckit.parallel(source,
							 | 
						||
| 
								 | 
							
								  function(i, cb)
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    setImmediate(function()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      total += i;
							 | 
						||
| 
								 | 
							
								      cb(null, total);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  function(err, result)
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    assert.ifError(err);
							 | 
						||
| 
								 | 
							
								    assert.equal(result[result.length - 1], expected);
							 | 
						||
| 
								 | 
							
								    deferred.resolve();
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}, {'defer': true})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// add listeners
							 | 
						||
| 
								 | 
							
								.on('cycle', function(ev)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  console.log(String(ev.target));
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								.on('complete', function()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  console.log('Fastest is ' + this.filter('fastest').map('name'));
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								// run async
							 | 
						||
| 
								 | 
							
								.run({ 'async': true });
							 |