我正在尝试在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();
我不知道该怎么办。让我得到的是我可以访问_data
var server.parseData
inresp.end
但我不能对服务器对象做同样的事情。