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 });