在“Main.js”中,我使用spawn来创建一个child_process。我想从“work.js”获取数据,但它显示错误
TypeError: out.clearLine is not a function
如果在终端中使用node work.js
,它可以正常工作。
似乎process.stdout在childProcess中没有函数“clearLine”。
main.js
var spawn = require('child_process').spawn;
var child = spawn('node',['work.js']);
child.stdout.on('data', function (data) {
console.log('data:',data.toString());
})
child.stderr.on('data', function (data) {
console.log("stderr:", data.toString());
});
work.js
var out = process.stdout;
var idx = 0;
var id = setInterval(()=>{
idx++;
out.clearLine();
out.cursorTo(0);
out.write('workTime:' + idx);
if(idx>3){
clearInterval(id);
console.log();
console.log('end')
}
},100)
这只是一个演示,我无法改变work.js.我如何解决main.js中的问题,谢谢
答案 0 :(得分:0)
请参阅:node.js stdout clearline() and cursorTo() functions
var readline = require('readline');
function writeWaitingPercent(p) {
//readline.clearLine(process.stdout);
readline.cursorTo(process.stdout, 0);
process.stdout.write(`waiting ... ${p}%`);
}