Enviar búsqueda
Cargar
Node.js Event Emitter
•
Descargar como PPTX, PDF
•
4 recomendaciones
•
2,498 vistas
Eyal Vardi
Seguir
Node.js Event Emitter
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 15
Descargar ahora
Recomendados
JavaScript - An Introduction
JavaScript - An Introduction
Manvendra Singh
PHP - Introduction to File Handling with PHP
PHP - Introduction to File Handling with PHP
Vibrant Technologies & Computers
Node.js File system & Streams
Node.js File system & Streams
Eyal Vardi
Php with MYSQL Database
Php with MYSQL Database
Computer Hardware & Trouble shooting
jQuery -Chapter 2 - Selectors and Events
jQuery -Chapter 2 - Selectors and Events
WebStackAcademy
Introduction to PHP
Introduction to PHP
Collaboration Technologies
JavaScript Promises
JavaScript Promises
Derek Willian Stavis
PHP - Introduction to PHP AJAX
PHP - Introduction to PHP AJAX
Vibrant Technologies & Computers
Recomendados
JavaScript - An Introduction
JavaScript - An Introduction
Manvendra Singh
PHP - Introduction to File Handling with PHP
PHP - Introduction to File Handling with PHP
Vibrant Technologies & Computers
Node.js File system & Streams
Node.js File system & Streams
Eyal Vardi
Php with MYSQL Database
Php with MYSQL Database
Computer Hardware & Trouble shooting
jQuery -Chapter 2 - Selectors and Events
jQuery -Chapter 2 - Selectors and Events
WebStackAcademy
Introduction to PHP
Introduction to PHP
Collaboration Technologies
JavaScript Promises
JavaScript Promises
Derek Willian Stavis
PHP - Introduction to PHP AJAX
PHP - Introduction to PHP AJAX
Vibrant Technologies & Computers
JSON and XML
JSON and XML
People Strategists
JavaScript Functions
JavaScript Functions
Reem Alattas
4.2 PHP Function
4.2 PHP Function
Jalpesh Vasa
Cookies and sessions
Cookies and sessions
Lena Petsenchuk
File system node js
File system node js
monikadeshmane
Class 3 - PHP Functions
Class 3 - PHP Functions
Ahmed Swilam
Flask
Flask
Mamta Kumari
Html5 tutorial for beginners
Html5 tutorial for beginners
Singsys Pte Ltd
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
WebStackAcademy
PHP Form Validation Technique
PHP Form Validation Technique
Morshedul Arefin
Php server variables
Php server variables
JIGAR MAKHIJA
Cookie and session
Cookie and session
Aashish Ghale
Introduction to php
Introduction to php
Taha Malampatti
Php.ppt
Php.ppt
Nidhi mishra
JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
WebStackAcademy
PHP Functions & Arrays
PHP Functions & Arrays
Henry Osborne
Real Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.io
Mindfire Solutions
Introduction to Node.js
Introduction to Node.js
Vikash Singh
PHP Cookies and Sessions
PHP Cookies and Sessions
Nisa Soomro
PHP variables
PHP variables
Siddique Ibrahim
API Design and WebSocket
API Design and WebSocket
Frank Greco
Node.js Spplication Scaling
Node.js Spplication Scaling
Eyal Vardi
Más contenido relacionado
La actualidad más candente
JSON and XML
JSON and XML
People Strategists
JavaScript Functions
JavaScript Functions
Reem Alattas
4.2 PHP Function
4.2 PHP Function
Jalpesh Vasa
Cookies and sessions
Cookies and sessions
Lena Petsenchuk
File system node js
File system node js
monikadeshmane
Class 3 - PHP Functions
Class 3 - PHP Functions
Ahmed Swilam
Flask
Flask
Mamta Kumari
Html5 tutorial for beginners
Html5 tutorial for beginners
Singsys Pte Ltd
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
WebStackAcademy
PHP Form Validation Technique
PHP Form Validation Technique
Morshedul Arefin
Php server variables
Php server variables
JIGAR MAKHIJA
Cookie and session
Cookie and session
Aashish Ghale
Introduction to php
Introduction to php
Taha Malampatti
Php.ppt
Php.ppt
Nidhi mishra
JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
WebStackAcademy
PHP Functions & Arrays
PHP Functions & Arrays
Henry Osborne
Real Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.io
Mindfire Solutions
Introduction to Node.js
Introduction to Node.js
Vikash Singh
PHP Cookies and Sessions
PHP Cookies and Sessions
Nisa Soomro
PHP variables
PHP variables
Siddique Ibrahim
La actualidad más candente
(20)
JSON and XML
JSON and XML
JavaScript Functions
JavaScript Functions
4.2 PHP Function
4.2 PHP Function
Cookies and sessions
Cookies and sessions
File system node js
File system node js
Class 3 - PHP Functions
Class 3 - PHP Functions
Flask
Flask
Html5 tutorial for beginners
Html5 tutorial for beginners
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
PHP Form Validation Technique
PHP Form Validation Technique
Php server variables
Php server variables
Cookie and session
Cookie and session
Introduction to php
Introduction to php
Php.ppt
Php.ppt
JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
PHP Functions & Arrays
PHP Functions & Arrays
Real Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.io
Introduction to Node.js
Introduction to Node.js
PHP Cookies and Sessions
PHP Cookies and Sessions
PHP variables
PHP variables
Destacado
API Design and WebSocket
API Design and WebSocket
Frank Greco
Node.js Spplication Scaling
Node.js Spplication Scaling
Eyal Vardi
Node.js Socket.IO
Node.js Socket.IO
Eyal Vardi
Node js overview
Node js overview
Eyal Vardi
Modules and injector
Modules and injector
Eyal Vardi
Angular 2.0 Views
Angular 2.0 Views
Eyal Vardi
Angular 2.0 forms
Angular 2.0 forms
Eyal Vardi
Async & Parallel in JavaScript
Async & Parallel in JavaScript
Eyal Vardi
Angular 2.0 Pipes
Angular 2.0 Pipes
Eyal Vardi
Http Communication in Angular 2.0
Http Communication in Angular 2.0
Eyal Vardi
Angular 2.0 Routing and Navigation
Angular 2.0 Routing and Navigation
Eyal Vardi
Routing And Navigation
Routing And Navigation
Eyal Vardi
Angular 2 NgModule
Angular 2 NgModule
Eyal Vardi
Upgrading from Angular 1.x to Angular 2.x
Upgrading from Angular 1.x to Angular 2.x
Eyal Vardi
Template syntax in Angular 2.0
Template syntax in Angular 2.0
Eyal Vardi
Component lifecycle hooks in Angular 2.0
Component lifecycle hooks in Angular 2.0
Eyal Vardi
Angular 2.0 Dependency injection
Angular 2.0 Dependency injection
Eyal Vardi
Angular 2 - Ahead of-time Compilation
Angular 2 - Ahead of-time Compilation
Eyal Vardi
Performance Optimization In Angular 2
Performance Optimization In Angular 2
Eyal Vardi
Angular 1.x vs. Angular 2.x
Angular 1.x vs. Angular 2.x
Eyal Vardi
Destacado
(20)
API Design and WebSocket
API Design and WebSocket
Node.js Spplication Scaling
Node.js Spplication Scaling
Node.js Socket.IO
Node.js Socket.IO
Node js overview
Node js overview
Modules and injector
Modules and injector
Angular 2.0 Views
Angular 2.0 Views
Angular 2.0 forms
Angular 2.0 forms
Async & Parallel in JavaScript
Async & Parallel in JavaScript
Angular 2.0 Pipes
Angular 2.0 Pipes
Http Communication in Angular 2.0
Http Communication in Angular 2.0
Angular 2.0 Routing and Navigation
Angular 2.0 Routing and Navigation
Routing And Navigation
Routing And Navigation
Angular 2 NgModule
Angular 2 NgModule
Upgrading from Angular 1.x to Angular 2.x
Upgrading from Angular 1.x to Angular 2.x
Template syntax in Angular 2.0
Template syntax in Angular 2.0
Component lifecycle hooks in Angular 2.0
Component lifecycle hooks in Angular 2.0
Angular 2.0 Dependency injection
Angular 2.0 Dependency injection
Angular 2 - Ahead of-time Compilation
Angular 2 - Ahead of-time Compilation
Performance Optimization In Angular 2
Performance Optimization In Angular 2
Angular 1.x vs. Angular 2.x
Angular 1.x vs. Angular 2.x
Similar a Node.js Event Emitter
What’s new in ECMAScript 6.0
What’s new in ECMAScript 6.0
Eyal Vardi
Objects & Classes in ECMAScript 6.0
Objects & Classes in ECMAScript 6.0
Eyal Vardi
OOP in JavaScript
OOP in JavaScript
Eyal Vardi
Async & Parallel in JavaScript
Async & Parallel in JavaScript
Eyal Vardi
Iterators & Generators in ECMAScript 6.0
Iterators & Generators in ECMAScript 6.0
Eyal Vardi
Proxies in ECMAScript 6.0
Proxies in ECMAScript 6.0
Eyal Vardi
Forms in AngularJS
Forms in AngularJS
Eyal Vardi
Pim Elshoff "Final Class Aggregate"
Pim Elshoff "Final Class Aggregate"
Fwdays
Gérer vos objets
Gérer vos objets
Thomas Gasc
Silex meets SOAP & REST
Silex meets SOAP & REST
Hugo Hamon
Scope & Functions in ECMAScript 6.0
Scope & Functions in ECMAScript 6.0
Eyal Vardi
JSDay Italy - Backbone.js
JSDay Italy - Backbone.js
Pierre Spring
Virtual Madness @ Etsy
Virtual Madness @ Etsy
Nishan Subedi
JSGeneve - Backbone.js
JSGeneve - Backbone.js
Pierre Spring
Intro to Advanced JavaScript
Intro to Advanced JavaScript
ryanstout
#include -iostream- #include -fstream- #include -cctype- #include -cst.docx
#include -iostream- #include -fstream- #include -cctype- #include -cst.docx
NathanyXJSharpu
PHPUnit でよりよくテストを書くために
PHPUnit でよりよくテストを書くために
Yuya Takeyama
How to test complex SaaS applications - The family july 2014
How to test complex SaaS applications - The family july 2014
Guillaume POTIER
Do you want a SDK with that API? (Nordic APIS April 2014)
Do you want a SDK with that API? (Nordic APIS April 2014)
Nordic APIs
Guard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful Security
Ryan Weaver
Similar a Node.js Event Emitter
(20)
What’s new in ECMAScript 6.0
What’s new in ECMAScript 6.0
Objects & Classes in ECMAScript 6.0
Objects & Classes in ECMAScript 6.0
OOP in JavaScript
OOP in JavaScript
Async & Parallel in JavaScript
Async & Parallel in JavaScript
Iterators & Generators in ECMAScript 6.0
Iterators & Generators in ECMAScript 6.0
Proxies in ECMAScript 6.0
Proxies in ECMAScript 6.0
Forms in AngularJS
Forms in AngularJS
Pim Elshoff "Final Class Aggregate"
Pim Elshoff "Final Class Aggregate"
Gérer vos objets
Gérer vos objets
Silex meets SOAP & REST
Silex meets SOAP & REST
Scope & Functions in ECMAScript 6.0
Scope & Functions in ECMAScript 6.0
JSDay Italy - Backbone.js
JSDay Italy - Backbone.js
Virtual Madness @ Etsy
Virtual Madness @ Etsy
JSGeneve - Backbone.js
JSGeneve - Backbone.js
Intro to Advanced JavaScript
Intro to Advanced JavaScript
#include -iostream- #include -fstream- #include -cctype- #include -cst.docx
#include -iostream- #include -fstream- #include -cctype- #include -cst.docx
PHPUnit でよりよくテストを書くために
PHPUnit でよりよくテストを書くために
How to test complex SaaS applications - The family july 2014
How to test complex SaaS applications - The family july 2014
Do you want a SDK with that API? (Nordic APIS April 2014)
Do you want a SDK with that API? (Nordic APIS April 2014)
Guard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful Security
Más de Eyal Vardi
Why magic
Why magic
Eyal Vardi
Smart Contract
Smart Contract
Eyal Vardi
Rachel's grandmother's recipes
Rachel's grandmother's recipes
Eyal Vardi
Angular 2 Architecture (Bucharest 26/10/2016)
Angular 2 Architecture (Bucharest 26/10/2016)
Eyal Vardi
Angular 2 Architecture
Angular 2 Architecture
Eyal Vardi
Modules in ECMAScript 6.0
Modules in ECMAScript 6.0
Eyal Vardi
Symbols in ECMAScript 6.0
Symbols in ECMAScript 6.0
Eyal Vardi
AngularJS Internal
AngularJS Internal
Eyal Vardi
Más de Eyal Vardi
(8)
Why magic
Why magic
Smart Contract
Smart Contract
Rachel's grandmother's recipes
Rachel's grandmother's recipes
Angular 2 Architecture (Bucharest 26/10/2016)
Angular 2 Architecture (Bucharest 26/10/2016)
Angular 2 Architecture
Angular 2 Architecture
Modules in ECMAScript 6.0
Modules in ECMAScript 6.0
Symbols in ECMAScript 6.0
Symbols in ECMAScript 6.0
AngularJS Internal
AngularJS Internal
Último
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
harshavardhanraghave
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
kaushalgiri8080
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
gurkirankumar98700
EY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
Neo4j
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
aditisharan08
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
Intelisync
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
shikhaohhpro
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
joe51371421
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
aagamshah0812
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Christina Lin
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
AxelRicardoTrocheRiq
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
OnePlan Solutions
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio, Inc.
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
soniya singh
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
ICS
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
VICTOR MAESTRE RAMIREZ
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
MyIntelliSource, Inc.
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
MyIntelliSource, Inc.
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
stazi3110
Último
(20)
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
EY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Node.js Event Emitter
1.
2.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com var events = require("events"), emitter = new events.EventEmitter(), username = "Eyal", password = "Vardi"; // an event listener emitter.on("userAdded", function (username, password) { console.log("Added user " + username); }); // Emit an event emitter.emit("userAdded", username, password);
3.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com var events = require("events"); var emitter = new events.EventEmitter(); emitter.once("foo", function () { console.log("In foo handler"); }); emitter.emit("foo"); emitter.emit("foo");
4.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com var events = require("events"); var EventEmitter = events.EventEmitter; var emitter = new EventEmitter(); emitter.on("foo", function () { }); emitter.on("foo", function () { }); console.log( EventEmitter.listenerCount(emitter, "foo") );
5.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com var events = require("events"); var EventEmitter = events.EventEmitter; var emitter = new EventEmitter(); emitter.on("foo", function (){ console.log("In foo handler"); }); emitter.listeners("foo").forEach(function (handler) { handler(); });
6.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com var events = require("events"); var emitter = new events.EventEmitter(); emitter.on( "newListener" , function (eventName, listener) { console.log("Added listener for " + eventName + " events"); }); emitter.on("foo", function () { });
7.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com
8.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com var EventEmitter = require("events").EventEmitter; var util = require("util"); function UserEventEmitter() { EventEmitter.call(this); this.addUser = function (username, password) { // add the user // then emit an event this.emit("userAdded", username, password); }; }; util.inherits(UserEventEmitter, EventEmitter);
9.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com function SuperType(name){ this.name = name; this.colors = ['red', 'blue', 'green']; } SuperType.prototype.sayName = function(){ alert(this.name); }; function SubType(name, age){ SuperType.call(this, name); this.age = age; } SubType.prototype = Object.create(SuperType.prototype); SubType.prototype.sayAge = function(){ alert(this.age); };
10.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com val getSuperValue [prototype] subVal __proto__ val __proto__ [prototype] subVal
11.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com function SuperType(name){ this.name = name; this.colors = ['red', 'blue', 'green']; } SuperType.prototype.sayName = function(){ return this.name; }; function SubType(name, age){ SuperType.call(this, name); this.age = age; } SubType.prototype = Object.create(SuperType.prototype); SubType.prototype.constructor = SubType; SubType.prototype.sayAge = function(){ alert(this.age); }; SubType.prototype.sayName = function(){ return SuperType.prototype.sayName.call(this) + "!!"; }; override fix constructor
12.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com var user = new UserEventEmitter(); var username = "colin"; var password = "password"; user.on("userAdded", function (username, password) { console.log("Added user " + username); }); user.addUser(username, password) console.log(user instanceof EventEmitter);
13.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com var fs = require("fs"); var fileName = "foo.txt"; fs.exists(fileName, function (exists) { if (exists) { fs.stat(fileName, function (error, stats) { if (error) { throw error; } if (stats.isFile()) { fs.readFile(fileName, "utf8", function (error, data) { if (error) { throw error; } console.log(data); }); } }); } });
14.
© 2014 All
rights reserved. Tel: 054-5-767-300, Email: evardi@gmail.com var EventEmitter = require("events").EventEmitter; var util = require("util"); var fs = require("fs"); function FileReader(fileName) { var _self = this; EventEmitter.call(_self); _self.on("stats", function() { fs.stat(fileName, function(error, stats) { if (!error && stats.isFile()) { _self.emit("read"); } }); }); _self.on("read", function() { fs.readFile(fileName, "utf8", function(error, data) { if (!error && data) { console.log(data); } }); }); fs.exists(fileName, function(exists) { if (exists) { _self.emit("stats"); } }); } util.inherits(FileReader, EventEmitter); var reader = new FileReader("foo.txt");
Descargar ahora