asyncpool

0.1.1 • Public • Published

Async Pool

npm npm

What?

A library to arrange async tasks with multi threads.

For example, you have several numbers in an Array, with each element, you want to request an url and then do something with the result.

How?

You can just write like this:

var arr = [1,2,3,4]; // the array contains 100 elements
var asyncPool = require('../lib/index');
 
asyncPool(1,arr,function(element,callback){
        requestUrl('/xxx?element='+element,function(serverData){
                console.log(element,serverData);
                callback();
        });
},function(){
        console.log('all done.');
});

Let's make a fake requestUrl() method:

function requestUrl(url,callback){
        setTimeout(function(){
                callback(Math.random());  //echo the url
        },1000*Math.random());
}

Then run this code:

1 0.20489364583045244
2 0.8399192735087126
3 0.8282372376415879
4 0.1924239993095398
all done.

See, all the tasks are run in order.

You can use asyncPool(n,arr,func,func) to use the multi thread, which means there would be n tasks running at the same time.

Changelog

v0.1.1 2015-02-09

  • bugfix: when accessing the task array after processing, it's poped and got nothing.

v0.1.0 2014-12-26

  • first release

Readme

Keywords

Package Sidebar

Install

npm i asyncpool

Weekly Downloads

0

Version

0.1.1

License

MIT

Last publish

Collaborators

  • toobug