【发布时间】:2023-04-07 07:01:01
【问题描述】:
我正在尝试在 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;启动类函数?
标签: node.js asynchronous asynccallback