lasting0001 / node-exec

serial、parallel code module for nodejs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NodeJs

nodejs并行、串行编码框架 serial、parallel code module for nodejs



1、LinkedList
the linked-list module based on basic link-list
基于基础链表的上层封装(the linked-list module based on basic link-list)
双向链表,支持基本的操作,亦可用作队列



2、Exec
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 });



About

serial、parallel code module for nodejs


Languages

Language:JavaScript 100.0%