Jasin Yip

简单的监听器和事件发送 —— Node.js 学习笔记(4)

引言

Node.js 所有的异步 I/O 操作在完成时都会发送 一个事件 到事件队列。而事件需要则监听器进行监听,当监听器监听到自己监听的事件时,便会进行相应的动作。

在开发者看来,事件由 EventEmiiter 对象提供。之前提到的 fs.readFile 和 http.createServer 的回调函数都是通过 EventEmitter 来实现的。

下面我们用一个简单的例子,来使用 EventEmiiter 创建监听器,以及发送事件。

学习目标

了解 EventEmitter 的用法,学会创建监听器,以及发送事件。

实现

event.js

var EventEmitter = require('events').EventEmitter;
var event = new EventEmitter();

event.on('some_event', function(){
    console.log('some_event occured.');
});

setTimeout(function(){
    event.emit('some_event');
}, 1000);

在命令行里运行,1秒后命令行输出 some_event occured.
原理是 event 对象创建了监听事件 some_event 的一个监听器,然后我们通过 setTimeout 在 1000ms 后向 event 对象发送事件 some_event。而前面所创建的监听器就会监听到 some_event 事件,便会执行里面的 console.log 语句,输出 some_event occured. 了。

标签:javascript, node.js, 异步式编程, events, 监听器, 事件

添加新评论