0
我想寫一個服務器,在的NodeJS,可稱爲像這樣:的NodeJS,回調地獄,從裏面的回調觸發類事件
server.getData()
.on('complete', function(){
console.log('on complete triggered');
});
我試圖從內到emit
事件response.end的回調,在http.get的回調中。像這樣:
Server = function(){
events.EventEmitter.call(this);
this.getData = function(fn){
var _cb;
fn ? _cb=fn: _cb=this.parseData;
https.get('https://api.example.com', _cb);
return this;
}
this.parseData = function(resp, fn){
var _data = '';
var self = this;
resp.setEncoding('utf8');
resp.on('data', function(chunk){
_data += chunk;
});
resp.on('end', function(){
var j = JSON.parse(_data);
self.emit('complete');
console.log(j);
if(fn)
fn(j);
});
}
}
util.inherits(Server, events.EventEmitter);
server = new Server();
我迷路了,該怎麼做。接觸我的是,我可以訪問server.parseData
中的_data
var resp.end
,但我無法對服務器對象執行相同的操作。
爲什麼不能用'var Server = this;'啓動類函數? – durum