in co warp deal with asynchronous concurrency
$ npm install co-agent
reference module:
const CoAgent = require('co-agent');
parameters configure and generating instance:
const coagent = new CoAgent({
pool: 20,
safe: true,
timeout: 5000
});
use instance wrap generator function or other iterator object:
// wrap can use genrator , genrator function and others can change to ierator
coagent.wrap(function* () {
for (var i = 0; i < 100; i++) {
// aysnc can use pormise and genrator
yield aysnc();
}
}).then(function(data){
//data is an Array of length 100
});
coagent.on('resolved',function(data){
var promise = data.promise;
var result = data.result;
//promise.label index
})
coagent.on('resolved',function(data){
var promise = data.promise;
var error = data.error;
//promise.label index
})
coagent.wrap return a promise and each iterator next return is considered an item of an array;
pool
: concurrency exec max length;
safe
: false one async exec error return promise rejected, true just this return data is null;
timeout
: every async exec timeout setting
MIT