我的模块中有此功能,该功能可写入child process's
stdin
流。但是有时候我会面对
events.js:160
throw er; // Unhandled 'error' event
^
Error: write EPIPE
at exports._errnoException (util.js:1020:11)
at WriteWrap.afterWrite (net.js:800:14)
我认为它的发生是因为有时可写的stdin流在我写入之前已关闭。基本上我想检查它是否关闭。如果打开,我会写进去,否则我不会写进去。
相关代码
/**
* Write the stdin into the child process
* @param proc Child process refrence
* @param stdin stdin string
*/
export function writeToStdin(proc: ChildProcess, stdin: string) {
if (stdin) {
proc.stdin.write(stdin + '\r\n');
proc.stdin.end();
}
}
是否找不到我要检查的API?
答案 0 :(得分:0)
您可以从流中尝试finished
api
const { finished } = require('stream');
const rs = fs.createReadStream('archive.tar');
finished(rs, (err) => {
if (err) {
console.error('Stream failed', err);
} else {
console.log('Stream is done reading');
}
});
rs.resume(); // drain the stream