Конечное событие не запускается при передаче в потоковый трансформатор - PullRequest
0 голосов
/ 09 декабря 2018

В следующем коде событие 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, когда поток заканчивается?

1 Ответ

0 голосов
/ 09 декабря 2018

Вы можете выполнять действия в событии «конец».

Просто заменить «конец» на «конец»

frs
.pipe(transform1)
.pipe(transform2)
.on("error", err => {
  throw err;
})
.on("finish", () => {
  doSomething()
});
...