您好,欢迎访问一九零五行业门户网

Node.js 事件队列娓娓道来

node.js eventemitter 事件队列
node.js 所有的异步 i/o 操作在完成时都会发送一个事件到事件队列。
下面我们来详解事件队列的方法和实例
方法:
[code]1.addlistener(event, listener) 为指定事件添加一个监听器到监听器数组的尾部。 2.on(event, listener) 为指定事件注册一个监听器,接受一个字符串 event 和一个回调函数。 3.once(event, listener) 为指定事件注册一个单次监听器,即 监听器最多只会触发一次,触发后立刻解除该监听器。 4.removelistener(event, listener) 移除指定事件的某个监听器,监听器 必须是该事件已经注册过的监听器。 5.removealllisteners([event]) 移除所有事件的所有监听器, 如果指定事件,则移除指定事件的所有监听器 6.setmaxlisteners(n) 默认情况下, eventemitters 如果你添加的监听器超过 10 个就会输出警告信息。 setmaxlisteners 函数用于提高监听器的默认限制的数量。 7.listeners(event) 返回指定事件的监听器数组。 8.emit(event, [arg1], [arg2], [...]) 按参数的顺序执行每个监听器,如果事件有注册监听返回 true,否则返回 false。
类方法
[code]1.listenercount(emitter, event) 返回指定事件的监听器数量。
事件
[code]1.newlistener event - 字符串,事件名称 listener - 处理事件函数 该事件在添加新监听器时被触发 2.removelistener event - 字符串,事件名称 listener - 处理事件函数 从指定监听器数组中删除一个监听器。需要注意的是,此操作将会改变处于被删监听器之后的那些监听器的索引。
案例一:每隔1s触发事件
event1.js[code]// 引入 events 模块 var events = require('events'); // 创建 eventemitter 对象 var eventemitter = new events.eventemitter(); // 注册监听器 eventemitter.on('some_event', function () { console.log('some_event 事件触发'); }); // 计时器 setinterval(function () { // 触发 some_event 监听器 eventemitter.emit('some_event'); }, 1000);
案例二:向事件队列中传参
event2.js
[code]var events = require('events'); var eventemitter = new events.eventemitter(); eventemitter.on('listener', function (arg1, arg2) { console.log('listener1', arg1, arg2); }) eventemitter.on('listener', function (arg1, arg2) { console.log('listener2', arg1, arg2); }); eventemitter.emit('listener', 'zhang', 'li');
案例三:为同一个监听器注册两个事件处理程序
[code]var events = require('events'); var eventemitter = new events.eventemitter(); var listener1 = function (arg1, arg2) { console.log('listener1', arg1, arg2); }; var listener2 = function (arg1, arg2) { console.log('listener2', arg1, arg2); }; // 注册监听器 eventemitter.on('listener', listener1); eventemitter.on('listener', listener2); // 触发监听器事件 // eventemitter.emit('listener', 'zhang', 'li'); var listenerlength = require('events').eventemitter.listenercount(eventemitter, 'listener'); eventemitter.emit('listener', 'zhang', 'li'); console.log('listener 监听器注册 ' + listenerlength + ' 个事件处理函数');
以上就是node.js 事件队列娓娓道来的内容。
其它类似信息

推荐信息