最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

node.js中的emitter.emit方法使用说明_node.js

来源:动视网 责编:小采 时间:2020-11-27 21:29:52
文档

node.js中的emitter.emit方法使用说明_node.js

node.js中的emitter.emit方法使用说明_node.js:方法说明: 发射event事件,传递若干可选参数到事件监听器的参数表。 语法: 代码如下: emitter.emit(event, [arg1], [arg2], [...]) 接收参数: event 事件类型 arg1 ~ argN 传递的参数(多个) 例子: 代码如下: var events = req
推荐度:
导读node.js中的emitter.emit方法使用说明_node.js:方法说明: 发射event事件,传递若干可选参数到事件监听器的参数表。 语法: 代码如下: emitter.emit(event, [arg1], [arg2], [...]) 接收参数: event 事件类型 arg1 ~ argN 传递的参数(多个) 例子: 代码如下: var events = req


方法说明:

发射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中的emitter.emit方法使用说明_node.js

node.js中的emitter.emit方法使用说明_node.js:方法说明: 发射event事件,传递若干可选参数到事件监听器的参数表。 语法: 代码如下: emitter.emit(event, [arg1], [arg2], [...]) 接收参数: event 事件类型 arg1 ~ argN 传递的参数(多个) 例子: 代码如下: var events = req
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top