今天看这着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都没用到只要有参数传进去就不会报错了。