process.nextTick举例说明

作者:admin     字体:[增加 减小]    类型:原创
process.nextTick(callback)的功能是为时间循环设置一项任务。NodeJS会在下次事件循环响应时调用callback。NodeJS适合IO密集型的应用,而不是计算密集型的应用。process.nextTick()提供了

process.nextTick(callback)的功能是为时间循环设置一项任务。NodeJS会在下次事件循环响应时调用callback。NodeJS适合IO密集型的应用,而不是计算密集型的应用。process.nextTick()提供了一个这样的工具,可以把复杂的工作拆散,变成一个较小的事件。

function compute(args){
    console.log("I am is compute method");
}

function somethingCompleted(args){
    console.log("I am is somethingCompleted method");
    console.log(args);
}

//这个函数可以用下面的方法写
/* function doSomething(args,callback){
    somethingCompleted(args);
    callback();
} */

//如果假设compute()和somethingCompleted()是两个较为耗时的函数,以上的程序在调用doSomething时会先执行sometingCompleted(args),然后立即调用函数,在onEnd()中又会执行compute(),所以改写如下
function doSomething(args,callback){
    somethingCompleted(args);

    //使用process.nextTick()后,改写的程序会把上面耗时的操作拆分成两个事件,减少每个事件的执行时间,提高事件相应速度
    process.nextTick(callback);
}
var d1 = new Date();
doSomething("test process.nextTick",function onEnd(){
    compute();
    var d2 = new Date();
    console.log( d2.getMilliseconds() - d1.getMilliseconds() );
})