Node.js事件的示例分析

发布时间:2021-11-22 09:22:16 作者:小新
来源:亿速云 阅读:108

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

快速概览

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

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事件的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. node.js基础的示例分析
  2. Javascript事件模拟的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

node.js

上一篇:R语言中的便捷小操作有哪些

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》