【发布时间】:2015-09-04 20:56:20
【问题描述】:
node.js 0.12.x 中有一些与事件模块相关的变化。 此更改使我扩展 EventEmitter 类的代码无法使用。 这是在 node.js v0.10.35 中运行良好的代码: teh_emitter.js:
var EventEmitter = require('events');
var util = require('util');
util.inherits(TehEmitter, EventEmitter);
function TehEmitter(){
EventEmitter.call(this);
}
TehEmitter.prototype.on('start', function (fCallback) {
fCallback();
});
module.exports = TehEmitter;
test_teh_emitter.js:
var TehEmitter = require('./teh_emitter');
describe('EventEmitter tests', function(){
describe('#emit() function', function(){
it('should fire start event', function(fCallback){
var oEmitter = new TehEmitter(fCallback);
oEmitter.emit('start', fCallback);
});
})
});
但是在 node.js v0.12.7 上它说: 0 次通过(2s) 1 次失败
1) EventEmitter tests #emit() function should fire start event:
Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
我知道在 0.12.x 中应该分配:
var EventEmitter = require('events');
(尽管require('events').EventEmitter; 应该仍然适用于向后兼容)。
但这无济于事。
我该如何解决这个问题?
【问题讨论】:
标签: node.js inheritance eventemitter changelog