尝试使用以下代码删除侦听器:
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter;
emitter.on('message', function(text)
{
console.log(text);
});
setInterval(function()
{
emitter.emit('message', Date.now());
}, 300);
setTimeout(function()
{
emitter.removeListener('message', function()
{
console.log('removing "message" listener');
});
}, 1000);
Run Code Online (Sandbox Code Playgroud)
它没有打破间隔,我的节点版本:v0.8.11
阅读文档我认为没关系:http: //nodejs.org/api/events.html#events_emitter_removelistener_event_listener
Pas*_*cle 15
您需要传递相同的函数removeListener,因此在这种情况下您不能使用匿名函数.
这是一个工作版本:
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter;
function listener(text) {
console.log(text);
}
emitter.on('message', listener);
setInterval(function() {
emitter.emit('message', Date.now());
}, 300);
setTimeout(function() {
console.log("removing");
emitter.removeListener('message', listener);
}, 1000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10494 次 |
| 最近记录: |