i have child process in that i am piping stream to parent.
in child.js
let stream = readdirp(pathname);
stream.pipe.pipe(process.stdout);
in parent.js
let file = child => {
let estream = es.map((data, next) => {
_this.s3MultiUpload(JSON.parse(data), data, next);
//i uploding this files to s3.
});
child.on("end", (code, signal) => {
console.log("stream ended"); // `here is my problem`
child.kill();
});
child.on("exit", (code, signal) => {
console.log(code);
console.log(signal);
child.kill();
});
return estream;
};
child = fork(filePath, { silent: true });
child.stdout.pipe(this.file(child));
My problem is before i upload all files to s3 stream got ended. i studied about backpressure, but i don't understand how to implement here ?
i think i need add callback or something to process stdout pipe. i don't know
Can you please help me