我有一个类getter,我只想在事件侦听器完成时才返回一个值。 有没有办法做到这一点?在返回之前等待NodeJS中的事件完成
我知道,我可以许诺把它包起来,并将其应用到链,但它不遵循模块化我需要的应用程序的使用情况:
class Request{
get body(){
console.log('processed before')
console.log(processed)
this._request.on('data', chunk => {
console.log('data received');
if (null == this._body._text) {
this._body._text = "";
}
this._body._text += chunk;
})
.once('end',() => {
console.log('processed')
processed = true;
});
console.log('processed after')
console.log(processed)
console.log('return this._body')
return this._body;
}
}
let req = new Request();
console.log(req.body());
我需要的回报只有在请求“结束”事件发生后继续并返回。
提前感谢您。
你可以包裹在一个承诺或回调将是的路要走 – marvel308
这是什么目的this._body._text =“”;'?如果'data'事件被多次调用,'this._body._text'将在每个事件中设置为空字符串'“”',是吗? – guest271314
哎呀,很好。意味着要在这一个周围进行空检查。 –