管道传输到流转换器时未触发结束事件
end event is not fired when piping to stream transformer
在下面的代码中,正确触发了读取流的 end
事件。
const frs = createReadStream("./file.txt", {
encoding: "utf8"
});
frs
.on("data", chunk => {
console.log(chunk);
})
.on("error", err => {
throw err;
})
.on("end", () => {
doSomething()
});
但是为什么 end
事件在管道传输到 Transform
流时没有被触发。
frs
.pipe(transform1)
.pipe(transform2)
.on("error", err => {
throw err;
})
.on("end", () => {
doSomething()
});
在第二种情况下(管道)如何在流结束时调用doSomething
?
您可以在 'finish' 事件中执行操作。
只需将 'end' 替换为 'finish'
frs
.pipe(transform1)
.pipe(transform2)
.on("error", err => {
throw err;
})
.on("finish", () => {
doSomething()
});
在下面的代码中,正确触发了读取流的 end
事件。
const frs = createReadStream("./file.txt", {
encoding: "utf8"
});
frs
.on("data", chunk => {
console.log(chunk);
})
.on("error", err => {
throw err;
})
.on("end", () => {
doSomething()
});
但是为什么 end
事件在管道传输到 Transform
流时没有被触发。
frs
.pipe(transform1)
.pipe(transform2)
.on("error", err => {
throw err;
})
.on("end", () => {
doSomething()
});
在第二种情况下(管道)如何在流结束时调用doSomething
?
您可以在 'finish' 事件中执行操作。
只需将 'end' 替换为 'finish'
frs
.pipe(transform1)
.pipe(transform2)
.on("error", err => {
throw err;
})
.on("finish", () => {
doSomething()
});