EventEmitter是nodejs核心的一部分。很多nodejs对象继承自EventEmitter,用来处理事件,及回调。来看API中的例子
var util = require("util");
var events = require("events");//EventEmitter通过events模块来访问
function MyStream() {//新建一个类
events.EventEmitter.call(this);
}
util.inherits(MyStream, events.EventEmitter);//使这个类继承EventEmitter
MyStream.prototype.write = function(data) {//定义一个新方法
this.emit("data", data);//在此触发名为"data"事件
}
var stream = new MyStream();
stream.on("data", function(data) {//注册监听器,监听名为"data"事件
console.log('Received data: "' + data + '"');
})
stream.write("It works!"); // Received data: "It works!"
可看出通过继承EventEmitter可为对象注册和触发相关事件。
可与Ruby做个比较,通过block来实现。
class MyStream
def write(data)
yield data
end
end
stream = MyStream.new
stream.write('It works!') do |data|
puts "Received data: #{data}"
end
分享到:
相关推荐
使用setTimeout()延时执行
扩展的跨平台,obratnosovmestimaya实现模块标准库NodeJS 。 附加 API 旨在提高代码的可用性和可读性。 为此,引入了以下机制: ## 与原版的区别: 标准事件: EventEmitter.MAX_LISTENERS = 10 默认情况下事件处理...
微型发射器 让您的事件及其侦听器在的情况下进行类型检查。 安装 只需使用npm添加依赖项: $ npm i tiny-typed-emitter 或使用纱线: $ yarn add tiny-typed-emitter ... 定义扩展EventEmitter的自定义类: clas
#EventEmitter4 1.2.3.4.4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. 5....为什么是 EventEmitter... 为什么不是标准的 nodejs EventEmitter 9.5. 为什么不是 EventEmitter2 9.6. 为什么不是 EventEmitter3 10.联系方式10.1
受Nodejs EventEmitter的启发。 概述New()EventEmmiter // New返回一个新的空EventEmmiter // AddListener是.On(eventName,listener)的别名。 用于Go编程语言的广告简单EventEmmiter。 受Nodejs EventEmitter的...
EventEmitter3 EventEmitter3是高性能的EventEmitter。... newListener和removeListener事件已删除,因为它们仅在某些不常见的用例中有用。 setMaxListeners , getMaxListeners , prependListener和prependOn
EventEmitter2是Node.js中的EventEmitter模块的实现。 除了具有比EventEmitter更好的基准性能并与浏览器兼容之外,它还通过许多其他不间断的功能扩展了EventEmitter的界面。 如果您喜欢这个项目,请通过显示您的...
promise/deferred 是一个很好的处理异步调用编码的规范,下面以nodejs代码为类,来实现一个promise/A 规范的简单实现 代码如下: /** * Created with JetBrains WebStorm. * User: xuwenmin * Date: 14-4-1 ...
leetcode 答案 题库 手写题 手写bind 手写promise,基础架子,不用写all、race等api 综合题 js css webpack ...项目里面用nodejs做了啥...nodejs的eventEmitter的实现 express的中间件系统是如何设计的 express 动态路由匹
nodejs IO EventEmitter 模板引擎简单实现 event loop process graphql-koa node优化 vue diff算法实现 vue-router实现 vue手动实现 react HOC、context、slot react实现 react简单实现 webpack loader&plugin实现 ...
虽然node对操作系统做了很多抽象的工作... process实现了EventEmitter接口,exit方法会在当进程退出的时候执行。因为进程退出之后将不再执行事件循环,所有只有那些没有回调函数的代码才会被执行。在下面例子中,setTi
该项目的目的是记录和学习nodejs项目中fs模块的用法。 fs模块用于基于文件的操作。 var fs = require("fs") fs模块提供同步和异步方法。 fs模块中的每个方法都具有同步和异步形式。 异步方法将最后一个参数作为...
var Et = require('events').EventEmitter; function Ticker() { var self = this; setInterval(function(){self.emit(tick)},1000); } util.inherits(Ticker,Et); var ticker = new Ticker(); t
es6-examples es6实现的示例代码,包含Promise、EventEmitter、浏览器和Nodejs的Event Loop
var eventEmitter = new events.EventEmitter(); // 使用匿名函数绑定 data_received 事件 eventEmitter.on('data_received', function(){ console.log('数据接收成功。'); }); // 创建事件处理程序 var ...
本篇文章主要介绍了关于Node.js的events.EventEmitter用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
本文实例分析了nodejs事件的监听与触发。分享给大家供大家参考。具体分析如下: 关于nodejs的事件驱动,看了《nodejs深入浅出》还是没看明白(可能写的有点深,或者自己理解能力不够...Event模块(events.EventEmitter
与其他发射器有一些区别: new EventEmitter()键入事件有效负载new EventEmitter() 用.take("event"): Promise等待事件.take("event"): Promise相同当您发出error事件并且没有人在听时,不要throw错误功能性-方法不...
Node.js中大部分的模块,都继承自Event模块。 与DOM树上事件不同,不存在事件冒泡、逐层捕获等行为。 EventEmitter 支持若干个事件监听器。当事件发射时,注册到这个事件的事件监听器被依次
对于通过net.createServer()创建的服务器而言,它是一个EventEmitter实例,自定义事件有以下几种: listening :在调用listen()绑定端口或Domain Socket后触发,简写为server.listen(port, listener),通过第二个...