Node.js事件的示例分析

这篇文章主要为大家展示了“Node.js事件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Node.js事件的示例分析”这篇文章吧。

创新互联-专业网站定制、快速模板网站建设、高性价比肥乡网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式肥乡网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖肥乡地区。费用合理售后完善,10余年实体公司更值得信赖。

快速概览

要访问此模块,只需使用如下语句:

require(‘events’)

requires(‘events’).EventEmitter

特别说明,node中所有能触发事件的对象基本上都是后者的实例。让我们创建一个简单的演示程序Dummy:

dummy.js

// basic imports  var events = require('events');   // for us to do a require later  module.exports = Dummy;   function Dummy() {      events.EventEmitter.call(this);  }   // inherit events.EventEmitter  Dummy.super_ = events.EventEmitter;  Dummy.prototype = Object.create(events.EventEmitter.prototype, {      constructor: {          value: Dummy,          enumerable: false     }  });

上述代码中重点展示如何使用EventEmitter扩充对象,并从中继承所有的原型对象,方法…等等。

现在,我们假设Dummy有一个cooking()的方法,一旦把食物做熟之后它会触发’cooked’事件,并调用一个名为’eat’的回调函数。

dummy-cooking.js

Dummy.prototype.cooking = function(chicken) {      var self = this;      self.chicken = chicken;      self.cook = cook(); // assume dummy function that'll do the cooking      self.cook(chicken, function(cooked_chicken) {          self.chicken = cooked_chicken;          self.emit('cooked', self.chicken);      });       return self;  }

现在,这个模块已经完成了。我们可以在主程序中使用它。

dummy-node.js

// A nonsensical node.js program   var Dummy = require('./dummy');  var kenny = new Dummy();  var dinner = kenny.cooking(fried_chix);  dinner.on('cooked', function(chicken) {      // eat up!  }>

所以基本上,node.js执行脚本,然后等待’cooked’事件被触发,并在事件触发之后调用回调函数并传递返回的参数。

还有什么要注意的

值得注意的是,例子中使用的“子类”和事件有一些极端(a bit of an overkill)。EventEmitter每次只触发一个事件(EventEmitter for things that only fire one event once)。如果只创造少数几个实例,可以将方法直接加入到实例本身,如果要触发底层事件,可能实用异步函数会更好一些。

关于events.EventEmitter,你还需注意一个特别的事件:’error’。任何错误发生时此事件都会触发,并且当没有监听程序监听这个事件时,node将会抛出异常并结束应用程序。(感谢Tim指出这一点)

以上是“Node.js事件的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


本文名称:Node.js事件的示例分析
当前路径:http://pwwzsj.com/article/pjggjp.html