有没有办法删除包含在匿名函数中的传入命名回调函数的侦听器?
更新。更完整的代码示例如下。
这是详细信息。我有一个在命名回调中传递的函数。
前
function read (message, named_callback ) {
var named_callback = named_callback || default_callback
, message = message || "Choose: ";
stdout.write(message);
stdin.resume();
stdin.setEncoding('utf8');
stdin.on('data', named_callback);
});
};
所有的人都named_callback
接受并准备一个传入的用户输入(答案)。
answer = answer.trim().toLowerCase();
我最终到处重复修剪和小写行!我想把这一步移到一个地方,所以试图在它被传递到回调之前准备答案。我写了这个:
后
function read (message, named_callback ) {
var named_callback = named_callback || default_callback
, message = message || "Choose: ";
stdout.write(message);
stdin.resume();
stdin.setEncoding('utf8');
stdin.on('data', function (answer) {
answer = answer.trim().toLowerCase();
named_callback(answer);
});
};
但是,这会导致事件侦听器没有被删除,它们只会堆积起来,直到程序因太多侦听器而崩溃。
谢谢你。