在 node.js 中没有发射方法
has no method of emit in node.js
我做了一个如下所示的简单示例,但出现错误消息“没有 'emit' 的方法”,这是什么问题?
var events = require('events');
var EventEmitter = require('events').EventEmitter;
var util = require('util');
var Door = function (options) {
events.EventEmitter.call(this);
}
util.inherits(Door, EventEmitter);
Door.prototype = {
open:function(){
this.emit('open');
}
}
var frontDoor = new Door('brown');
frontDoor.on('open', function() {
console.log('ring ring ring');
});
frontDoor.open();
您正在用一个新对象替换 Door
的原型,它也会覆盖(/删除)EventEmitter
原型方法:
Door.prototype = {
open:function(){
this.emit('open');
}
}
相反,只需向现有原型添加一个条目:
Door.prototype.open = function() {
this.emit('open');
};
我做了一个如下所示的简单示例,但出现错误消息“没有 'emit' 的方法”,这是什么问题?
var events = require('events');
var EventEmitter = require('events').EventEmitter;
var util = require('util');
var Door = function (options) {
events.EventEmitter.call(this);
}
util.inherits(Door, EventEmitter);
Door.prototype = {
open:function(){
this.emit('open');
}
}
var frontDoor = new Door('brown');
frontDoor.on('open', function() {
console.log('ring ring ring');
});
frontDoor.open();
您正在用一个新对象替换 Door
的原型,它也会覆盖(/删除)EventEmitter
原型方法:
Door.prototype = {
open:function(){
this.emit('open');
}
}
相反,只需向现有原型添加一个条目:
Door.prototype.open = function() {
this.emit('open');
};