我不知道我的代碼有什麼問題。事件沒有被髮射或他們沒有被捕獲nodejs
// emitter.js
var EventEmitter = require('events').EventEmitter;
var util = require('util');
function Loadfun(param1, param2, db){
function __error(error, row){
if(error){
this.emit('error', error);
return true;
}
if(row.length < 1)
this.emit('failure');
}
function doSomething(){
db.query('select something', callback);
}
function callback(err, result){
if(__error(error))
return false;
else
this.emit('success', result);
}
this.doSomething = doSomething;
};
util.inherits(Loadfun,EventEmitter);
module.exports = Loadfun;
這是發射器功能。 和我使用這個一些同步數據庫的作品。 以下是調用函數。
var emitter = require('emitter');
router('/fetch', function(req, res){
var fetch = new emitter(param1, param2, db);
fetch.on('failure', function(){
console.log('error');
});
fetch.on('success', function(data){
console.log(JSON.stringify(data));
});
fetch.doSomething();
});
這工作完好,沒有任何錯誤。 我試圖記錄流量,直到放射成功 但捕獲的事件發射沒有被記錄.. 我不明白是什麼問題..這將是很好,如果有人可以幫助。
感謝您的答覆.. 問題是與此指針..現在它的工作正常 –
檢查以下鏈接的深度信息關於'這個' https://github.com/getify/You-Dont-Know-JS/blob/master/this%20& %20object%20prototypes/README.md#you-dont-know-js-this - object-prototypes –