当前位置:首页 > 日记 > 正文

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

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

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

向回调函数传递额外的参数

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

var events = require("events");function CarShow() {  events.EventEmitter.call(this);  this.seeCar = function (make) {    this.emit('sawCar', make);  }}CarShow.prototype.__proto__ = events.EventEmitter.prototype;var show = new CarShow();function logCar(make) {  console.log("Saw a "+make);}function logColorCar(make, color) {  console.log("Saw a %s %s ", color, make);}show.on("sawCar", logCar);show.on("sawCar", function (make) {  var colors = ["red", "blue", "black", "pink", "green"];  var color = colors[Math.floor(Math.random()*3)];  logColorCar(make, color);});show.seeCar("Ferrari");show.seeCar("Porsche");show.seeCar("Bugatti");

在回调中实现闭包

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

function logCar(logMsg, callback) {  process.nextTick(function () {    callback(logMsg);  });}var cars = ["猎豹", "捷达", "朗逸"];for(var idx in cars){  var msg = "Saw a "+cars[idx];  logCar(msg, function () {    console.log("Normal Callback "+ msg);  });}for(var idx in cars){  var msg = "Saw a "+cars[idx];  (function (msg) {    logCar(msg, function () {      console.log("Closure Callback "+ msg);    })  })(msg);}//Normal Callback Saw a 朗逸//Normal Callback Saw a 朗逸//Normal Callback Saw a 朗逸//Closure Callback Saw a 猎豹//Closure Callback Saw a 捷达//Closure Callback Saw a 朗逸

链式回调

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

function logCar(car, callback) {  console.log("Saw a %$", car);  if(cars.length){    process.nextTick(function () {      callback();    });  }}function logCars(cars) {  var car = cars.pop();  logCar(car, function () {    logCars(cars);  });}var cars = ["猎豹", "捷达", "朗逸"];logCars(cars);

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

相关文章

ps如何调整的色阶

ps如何调整的色阶

调整,方法,的色,图片,电脑软件,  图层的色阶在ps中经常会调节,这样可以调出好看的图片。其实这个也不算太难,下面就让小编告诉你ps如何调整图片的色阶的方法,一起学习吧。ps调整图片的色阶的方法1.选定要调整的图层,如下图:2.图像--调整--色阶…

JS中使用gulp实现压缩文件及浏览器

JS中使用gulp实现压缩文件及浏览器

热加载,压缩文件,浏览器,功能,电脑软件,gulp类似于grunt,都是基于Node.js的前端构建工具。不过gulp压缩效率更高。一.安装gulp  首先,你要安装过nodejs,如果没有安装过的同学请自行下载。 先再命令行里输入 npm install gulp -g 下载gu…

es6的数字处理的方法(5个)

es6的数字处理的方法(5个)

方法,数字处理,电脑软件,// Math.trunc方法用于去除一个数的小数部分,返回整数部分。 Math.trunc(4.1) // 4 Math.trunc(4.9) // 4 Math.trunc(-4.1) // -4 Math.trunc(-4.9) // -4 Math.trunc(NaN); // NaN Math.trunc('foo'); // NaN Ma…

如何将word2013转成PDF

如何将word2013转成PDF

转成,如何将,电脑软件,PDF,  我们在使用Word2013编辑好Word文档资料后,需要把文档资料转换成为PDF格式的文件。那么,在这种情况下我们应该怎样做呢?那么下面就由小编给大家分享下将word2013转成PDF的技巧,希望能帮助到您。将word2013转成PDF…

简述Ajax的优点与缺点

简述Ajax的优点与缺点

缺点,优点,电脑软件,Ajax,ajax的优点Ajax的给我们带来的好处大家基本上都深有体会,在这里我只简单的讲几点:1、最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。2、使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅…

微信小程序实现放大预览功能

微信小程序实现放大预览功能

功能,程序,电脑软件,微信小,需求:当点击图片时,当前图片放大预览,且可以左右滑动实现方式:使用微信小程序图片预览接口我们可以看到api需要两个参数,分别通过下面的data-list和data-src来传到js中wxml代码:<!--图片描述--> <view wx:if="{{item.…

Fireworks如制作折叠效果的菜单

Fireworks如制作折叠效果的菜单

菜单,折叠,效果,电脑软件,Fireworks,现在菜单效果越来越炫,如何实现折叠的效果呢,就几步,很简单,下面我们来看看吧!步骤:1、&ldquo;文件&rdquo;----&ldquo;新建&rdquo;一个图形,尺寸是150x350,当然可以按照需要定义。2、选中左侧的&ldquo;矩形工具&…

怎么在word2007中设置大纲的级别wo

怎么在word2007中设置大纲的级别wo

设置,级别,操作方法,步骤,大纲,  在编辑文档的时候,目录有时是必不可少的一项,但在实际情况当中,那么今天小编就教你怎么在word2007中设置大纲的级别。word2007中设置大纲的级别的步骤选择&ldquo;视图&ldquo;选项卡word2007中设置大纲的级别…

Excel表格中RANK函数怎么做成绩排

Excel表格中RANK函数怎么做成绩排

函数,成绩排名,怎么做,表格,成绩,  当你用excel时需要根据成绩或者业绩进行排序的时候,你是否还在一个一个的比照呢,那样就太没效率了。以下是小编为您带来的关于Excel中RANK函数做成绩排名,希望对您有所帮助。Excel中RANK函数做成绩排名使…

PS图层模式中叠加是什么效果?

PS图层模式中叠加是什么效果?

叠加,图层,模式,效果,电脑软件,PS图层模式中叠加是什么效果?把放置或应用到一个层上的颜色同背景色进行混 合,然而,却能得到有趣的效果,下面我们来看看吧!步骤:1、选择&ldquo;渐变工具&rdquo;,并设置渐变色;2、填充渐变色;3、在文档中,用&ldquo;文…

JavaScript两个变量交换值的实现方

JavaScript两个变量交换值的实现方

方法,变量交换,两个,电脑软件,JavaScript,概要本文主要描述,如何不使用中间值,将两个变量的值进行交换。一、普通做法var a = 1, b = 2, tmp;tmp = a;a = b;b = tmp;普通的做法就是声明多一个临时变量tmp,进行数据交换过程中的缓存。这样的做…

ps暂存盘怎样清理使用

ps暂存盘怎样清理使用

方法,使用方法,电脑软件,ps,  使用ps有时候会发现暂存盘满了,这时候大家可以清理然后就能再次使用了。那么大家知道ps暂存盘怎样清理使用吗?下面是小编整理的ps暂存盘怎样清理使用的方法,希望能帮到大家!ps暂存盘清理使用的方法如图打开ps…