1
有沒有辦法刪除一個匿名函數中包裝的傳入命名回調函數的偵聽器?刪除包含在匿名函數中的命名回調?
UPDATE。下面更完整的代碼示例。
這是細節。 我有一個函數,在一個命名的回調傳遞。
以前
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);
});
};
然而,這會導致無法刪除事件偵聽器,他們只是堆積,直到程序有太多的聽衆崩潰。
謝謝。
謝謝回答。我更新了代碼,以便它更完整,因爲,就像我所做的那樣,它看起來像包裝函數並沒有增加任何價值,我認爲'一次'可以解決問題,用它重寫代碼。 CK。同時,您知道是否有其他方式來跟蹤聽衆並將其刪除? –
@ hearandnow78'一次'方法解決了我的問題。感謝您提出建議。 –