nodejs代码的深层嵌套实现同步操作

时间:2021-03-12 23:49:36

  今天看这着nodejs深层嵌套实现同步的代码想了半天才明白是怎么回事,虽然这个方法非常差但是了解一下具体的流程还是不错的。首先上代码

var func1 = function(req,res,callback){
    setTimeout(function(){
        console.log('in func1');
        callback(req,res,'12');

    },1300);
}
var func2 = function(req,res,callback){
    setTimeout(function(){
        console.log('in func2');
        callback(req,res,2);
    },500);
}

var func3 = function(req,res,callback){
    setTimeout(function(){
        console.log('in func3');
        callback(req,res,3);
    },100);
}
var req = null;
var res = null;


func1(req,res,function(){
    func2(req,res,function(){
        func3(req,res,function(){
            process.exit(0);
        })
    });
});
我刚开始非常纠结func1的第三个参数,调试出来第三个参数是个函数我想了半天也没想通。后来自己慢慢看总算是看明白了,首先把三个参数传给func1分别是null,null和一个包含func2和func3的大函数,然后func1延迟1.3S执行打印,然后通过callback把三个参数传给func2,callback的三个参数无所谓因为func2和func3都没用到只要有参数传进去就不会报错了。