方法说明:
发射event事件,传递若干可选参数到事件监听器的参数表。
语法:
emitter.emit(event, [arg1], [arg2], [...])
接收参数:
event 事件类型
arg1 ~ argN 传递的参数(多个)
例子:
var events = require('events'); var emitter = new events.EventEmitter(); emitter.on('someEvent', function(arg1, arg2){ console.log('listener1', arg1, arg2); }) emitter.on('someEvent', function(arg1, arg2){ console.log('listener2', arg1, arg2); }) emitter.emit('someEvent', 'byvoid', 1991);
源码:
EventEmitter.prototype.emit = function(type) { var er, handler, len, args, i, listeners; if (!this._events) this._events = {}; // If there is no 'error' event listener then throw. if (type === 'error') { if (!this._events.error || (util.isObject(this._events.error) && !this._events.error.length)) { er = arguments[1]; if (this.domain) { if (!er) er = new TypeError('Uncaught, unspecified "error" event.'); er.domainEmitter = this; er.domain = this.domain; er.domainThrown = false; this.domain.emit('error', er); } else if (er instanceof Error) { throw er; // Unhandled 'error' event } else { throw TypeError('Uncaught, unspecified "error" event.'); } return false; } } handler = this._events[type]; if (util.isUndefined(handler)) return false; if (this.domain && this !== process) this.domain.enter(); if (util.isFunction(handler)) { switch (arguments.length) { // fast cases case 1: handler.call(this); break; case 2: handler.call(this, arguments[1]); break; case 3: handler.call(this, arguments[1], arguments[2]); break; // slower default: len = arguments.length; args = new Array(len - 1); for (i = 1; i < len; i++) args[i - 1] = arguments[i]; handler.apply(this, args); } } else if (util.isObject(handler)) { len = arguments.length; args = new Array(len - 1); for (i = 1; i < len; i++) args[i - 1] = arguments[i]; listeners = handler.slice(); len = listeners.length; for (i = 0; i < len; i++) listeners[i].apply(this, args); } if (this.domain && this !== process) this.domain.exit(); return true; };
本文向大家介绍node.js中的events.emitter.removeListener方法使用说明,包括了node.js中的events.emitter.removeListener方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 移除指定事件的某个监听器。 语法: 接收参数: event (string) 事件类型 listene
本文向大家介绍node.js中的events.emitter.once方法使用说明,包括了node.js中的events.emitter.once方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 为指定事件注册一个 单次 监听器,所以监听器至多只会触发一次,触发后立即解除该监听器。 语法: 接收参数: event (string) 事件
本文向大家介绍node.js中的emitter.on方法使用说明,包括了node.js中的emitter.on方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 为指定事件注册一个监听器。 语法: 接收参数: event (string) 事件类型 listener (function) 触发事件时的回调函
本文向大家介绍node.js中的http.request.end方法使用说明,包括了node.js中的http.request.end方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 完成请求发送。 如果任何一部分请求体没有被发送,它将被刷新到流。 如果指定了 data值,将在执行完 request.end() 后,再执行一条 request.write(data , encodi
本文向大家介绍node.js中的buffer.write方法使用说明,包括了node.js中的buffer.write方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 将string使用指定的encoding写入到buffer的offset处。 返回写入了多少个八进制字节。 如果Buffer没有足够的空间来适应整个string,那么将只有string的部分被写入。 语法: 接收参数
本文向大家介绍node.js中的buffer.slice方法使用说明,包括了node.js中的buffer.slice方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 返回一个新的buffer对象,这个新buffer和老buffer公用一个内存。 但是被start和end索引偏移缩减了。(比如,一个buffer里有1到10个字节,我们只想要4-8个字节,就可以用这个函数buf.sl