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) 返回指定事件的监听器数量。
Event
[code]1.newListener event - 字符串,事件名称 listener - 处理事件函数 该事件在添加新监听器时被触发 2.removeListener event - 字符串,事件名称 listener - 处理事件函数 从指定监听器数组中删除一个监听器。需要注意的是,此操作将会改变处于被删监听器之后的那些监听器的索引。
[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);
ケース2: イベント キューにパラメーターを渡す
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');
ケース 3: 同じリスナーに 2 つのイベント ハンドラーを登録する
[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 イベント キューです。その他の関連コンテンツについては、こちらをご覧ください。 、PHP 中国語 Web サイト (www.php.cn) に注意してください。