nodejs并行、串行编码框架
serial、parallel code module for nodejs
the linked-list module based on basic link-list
基于基础链表的上层封装(the linked-list module based on basic link-list)
双向链表,支持基本的操作,亦可用作队列
parallel serial execute functions
并行、串行执行一系列方法
//并行串行执行模块
//参数请自己遵守约束,减少检测,提高性能
_Exec.parallel({fns: [func1, func2, func3], args: [null, null, {game_id: 1}], errorBack: errorCall, overBack: overCall});
_Exec.serial({fns: [func1, func2, func3], args: [null, null, {game_id: 1}], errorBack: errorCall, overBack: overCall});
//并行parallel:自定义function的arguments[0]必有如下参数:callBack:自定义函数执行完毕后callBack(null,results) 或者 callBack(error)-此时后面的函数将不会在执行;arg:自定义参数,可空
//串行serial:自定义function的arguments[0]必有如下参数:pre_results:上一个函数的执行结果;callBack:自定义函数执行完毕后callBack(null,results) 或者 callBack(error)-此时后面的函数将不会在执行;arg:自定义参数,可空
使用eg:
require('exec');
function func1() {
var params = arguments[0];
setTimeout(function () {
params && params.callback(null, '1');
}, 3000);
}
function func2() {
var params = arguments[0];
setTimeout(function () {
params && params.callback(null, +'2');
}, 2000);
}
function func3() {
var params = arguments[0];
setTimeout(function () {
params && params.callback(null, '3');
}, 1000);
}
function errorCall(err) {
console.log('error:' + err);
}
function overCall(results) {
console.timeEnd('1');
console.log('over:' + results);
}
console.time('1');
_Exec.parallel({
fns: [func1, func2, func3],
args: [null, null, {game_id: 10002266}],
errorBack: errorCall,
overBack: overCall
});
_Exec.serial({
fns: [func1, func2, func3],
args: [null, null, {game_id: 10002266}],
errorBack: errorCall,
overBack: overCall
});