process.stdout在childProcess

时间:2017-02-01 17:47:48

标签: javascript node.js

在“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中的问题,谢谢

1 个答案:

答案 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}%`);
}