【问题标题】:Subclassing events.EventEmitter not working子类化 events.EventEmitter 不起作用
【发布时间】:2013-05-28 05:59:04
【问题描述】:

如何继承 EventEmitter?我正在尝试以下测试:

 var util = require('util')
   ,events = require('events');

function Downloader() {

    events.EventEmitter.call(this);
}
util.inherits(Downloader, events.EventEmitter);
console.log(new Downloader() instanceof events.EventEmitter); // true
Downloader.prototype.download = function(episode) {
    var self = this;

    var statusMessage = 'Downloading: ' + episode;
    self.emit('status', statusMessage);    

    setTimeout(function() {
        var finishedMessage = 'Downloaded ' + episode;
        self.emit('finished', finishedMessage);
    }, 5000);    
}

exports.Downloader = new Downloader();

Node 抱怨“object”没有“on”方法。但是,当检查 Downloader instanceOf EventEmitter 是否返回 true。

谁能解释一下?谢谢!

【问题讨论】:

    标签: javascript node.js eventemitter


    【解决方案1】:

    天哪。首先它应该是“module.exports”。其次,它的“instanceof”不是“instanceOf”。

    我的错。这是一个工作示例

    var util = require('util')
       ,events = require('events');
    
    function Downloader() {
    
        events.EventEmitter.call(this);
    }
    util.inherits(Downloader, events.EventEmitter);
    
    Downloader.prototype.download = function(episode) {
        var self = this;
    
        var statusMessage = 'Downloading: ' + episode;
        self.emit('status', statusMessage);    
    
        setTimeout(function() {
            var finishedMessage = 'Downloaded ' + episode;
            self.emit('finished', finishedMessage);
        }, 5000);    
    }
    
    module.exports = new Downloader();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多