У меня есть код, похожий на этот ....
return connection.queryStream(
config.query,
params
);
Тогда у меня есть считыватель потока
class SearchStream{
constructor(ws, ...){
this.ws;
this.stream.on("data", this.onStreamItem.bind(this));
this.stream.on("error", this.onStreamError.bind(this));
this.stream.on("end", this.onStreamEnd.bind(this));
}
onStremEnd(){
this.ws.close();
}
onStreamItem(item){
setTimeout(()=>{
this.ws.send(...);
}, 5000)
// returns promise is real world
}
}
Проблема здесь в том, что конец потока вызывается перед setTimeouts закончились и сообщения потеряны. Могу ли я дождаться запуска Stream End, пока все обещания не будут выполнены?