Javascript 如何识别node.js中发出事件的流
我有来自Db的流,我正在通过HTTP请求将它发送到许多HTTP服务器。 要分割此流,我使用passThrough 一切都很好,但是当事件被调用时,我不知道哪个流发出它。 是否有任何解决方案来识别该流?。 我正在使用错误、结束、数据和响应事件。 作为回应,我有关于主机的信息,但最重要的是在ErrorEventListener中识别它Javascript 如何识别node.js中发出事件的流,javascript,node.js,stream,Javascript,Node.js,Stream,我有来自Db的流,我正在通过HTTP请求将它发送到许多HTTP服务器。 要分割此流,我使用passThrough 一切都很好,但是当事件被调用时,我不知道哪个流发出它。 是否有任何解决方案来识别该流?。 我正在使用错误、结束、数据和响应事件。 作为回应,我有关于主机的信息,但最重要的是在ErrorEventListener中识别它 const stream = await getDataStream(id); const passThrough = new PassThrough(); stre
const stream = await getDataStream(id);
const passThrough = new PassThrough();
stream.pipe(objectToString).pipe(passThrough);
for (let host of hostsList) {
startedRequestsCount++;
host.stream
.on('error', errorHandler)
.on('data', dataHandler)
.on('response', responseHandler)
.on('end', resolveAfterAllRequests);
passThrough.pipe(host.stream);
}
我对这个解决方案有很多疑问,但现在,它正在发挥作用。
问题是当我收到错误并想知道哪个主机出现故障时
奖金问题:
如果我通过HTTP进行流传输,我可以处理背压问题吗?定义处理程序时,使用currying获取额外的流参数:
const errorHandler = stream => error => {
console.log(stream, error);
};
然后煮咖喱:
host.stream
.on('error', errorHandler(host.stream));
当然,您可以使用该模式传入多个参数。元素是什么?@jonaswillms这是一个输入错误。这是主机,主机是一个包含流请求的对象。请注意,将一个流输送到多个流可能会导致背压问题。@Jonaswillms是的,我知道,因此我有一个额外的问题;。。。哎呀。不知怎么跳过了。谢谢,这就是我需要的。