方法說明:
為指定事件注冊一個 單次 監聽器,所以監聽器至多只會觸發一次,觸發後立即解除該監聽器。
語法:
代碼如下:
emitter.once(event, listener)
接收參數:
event (string) 事件類型
listener (function) 觸發事件時的回調函數
例子:
代碼如下:
server.once('connection', function (stream) {
console.log('Ah, we have our first user!');
});
源碼:
代碼如下:
EventEmitter.prototype.once = function(type, listener) {
if (!util.isFunction(listener))
throw TypeError('listener must be a function');
function g() {
this.removeListener(type, g);
listener.apply(this, arguments);
}
g.listener = listener;
this.on(type, g);
return this;
};