1
我正在學習節點,它的事件API並試圖做一個簡單的例子。node.js自定義事件:無法調用未定義的方法'emit'
因此,這裏是我的代碼:
var fs = require('fs');
var util = require('util');
var events = require('events');
var FileLoader = function() {
events.EventEmitter.call(this);
this.load = function (url) {
fs.readFile(url, function (err, data) {
if (err) {
throw err;
} else {
this.emit('loaded', data.toString());
}
});
};
};
util.inherits(FileLoader, events.EventEmitter);
module.exports = FileLoader;
我想load()
一個文本文件,在加載時,與.on('loaded',function(){...})
抓住它,但this
是不確定的,所以程序崩潰。
我絕對缺少一些東西,如何使它工作?
我懷疑'this.emit'中的_'this'不是'FileLoader'實例_,並且需要一種將'this'傳遞給回調函數的方法。 'bind()'是我尋找的方式,謝謝。 – amdc