node . js实现回调的方法示例

  

本文实例讲述了node . js实现回调的方法。分享给大家供大家参考,具体如下:

  

<强>向回调函数传递额外的参数

  

在调用函数中,使用匿名函数中实现需传递的参数,再次匿名函数内调用回调函数。

        var=事件需要(“事件”);   函数CarShow () {   events.EventEmitter.call(这个);   这一点。seeCar=函数(使){   这一点。发出(“sawCar”,使);   }   }   CarShow.prototype。__proto__=events.EventEmitter.prototype;   var=new CarShow展示();   函数logCar(使){   控制台。日志(“看见”+);   }   函数logColorCar(制作,颜色){   控制台。日志(“看见一个% s % s”,颜色,制造);   }   秀。(“sawCar logCar);   秀。(“sawCar”功能(使){   var颜色=(“红”、“蓝”、“黑”、“粉红色”,“绿色”);   var=颜色(Math.floor (math . random () * 3)];   logColorCar(制作,颜色);   });   show.seeCar(“法拉利”);   show.seeCar(“保时捷”);   show.seeCar(“布加迪”);      之前      

<强>在回调中实现闭包

  

如果某个回调函数需要访问父函数的作用域的变量,就需要使用闭包,在函数块内部封装一个异步调用,并传入所需要的变量。

        回调函数logCar (logMsg) {   的过程。nextTick(函数(){   回调(logMsg);   });   }   汽车var=["猎豹”、“捷达”、“朗逸”);   (var idx的汽车){   var味精="看见" +汽车(idx);   logCar(味精、函数(){   控制台。日志(“正常回调”+味精);   });   }   (var idx的汽车){   var味精="看见" +汽车(idx);   (函数(味精){   logCar(味精、函数(){   控制台。关闭日志(“回调”+味精);   })   })(味精);   }//正常回调了朗逸//正常回调了朗逸//正常回调了朗逸//关闭调看见一个猎豹//关闭调看见一个捷达//关闭回调了朗逸      之前      

<>强链式回调

  

使用异步函数时,如果两个函数都在事件队列上,则无法保证它们的运行顺序。解决方法是让来自异步函数的回调再次调用该函数,直到没有更多的工作要做,以执行链式回调。

        logCar(车,回调函数){   控制台。日志(“看见一个% $”、汽车);   如果(cars.length) {   的过程。nextTick(函数(){   回调();   });   }   }   函数logCars(汽车){   var车=cars.pop ();   logCar(汽车、函数(){   logCars(汽车);   });   }   汽车var=["猎豹”、“捷达”、“朗逸”);   logCars(汽车);      之前      

希望本文所述对大家nodejs程序设计有所帮助。

node . js实现回调的方法示例