asyncpool

WebJar for asyncpool

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

asyncpool
Last Version

Last Version

0.1.1
Release Date

Release Date

Type

Type

jar
Description

Description

asyncpool
WebJar for asyncpool
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/TooBug/asyncPool

Download asyncpool

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/asyncpool/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>asyncpool</artifactId>
    <version>0.1.1</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/asyncpool/
implementation 'org.webjars.npm:asyncpool:0.1.1'
// https://jarcasting.com/artifacts/org.webjars.npm/asyncpool/
implementation ("org.webjars.npm:asyncpool:0.1.1")
'org.webjars.npm:asyncpool:jar:0.1.1'
<dependency org="org.webjars.npm" name="asyncpool" rev="0.1.1">
  <artifact name="asyncpool" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='asyncpool', version='0.1.1')
)
libraryDependencies += "org.webjars.npm" % "asyncpool" % "0.1.1"
[org.webjars.npm/asyncpool "0.1.1"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

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

Versions

Version
0.1.1