您可以使用removeListener(eventType, callback)删除一个事件,该事件应该适用于所有类型的发射器。
API 文档中的示例:
var callback = function(stream) {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
所以你需要一个变量来保存对回调的引用,因为很明显,否则不可能知道你想要删除哪个回调。
编辑
在 CS 中应该是这样的人:
stdin = process.openStdin()
stdin.setEncoding 'utf8'
logger = (input) -> console.log 'One'
stdin.on 'data', logger
stdin.removeListener 'data', logger
stdin.on 'data', (input) -> console.log 'Two'
请参阅:http ://nodejs.org/docs/latest/api/events.html#emitter.removeListener