繁体   English   中英

在使用Node-Webkit执行程序时将stdout写入div?

[英]Write stdout to a div as program executes with Node-Webkit?

在我的Node-Webkit应用程序中,我使用exec()执行子应用程序。 该应用程序将一些调试信息输出到外壳。

问题是stdout仅在子应用程序退出后才发送文本。

当子应用程序正在运行时,是否可以使用stdout信息更新div元素?

var exec = require('child_process').exec;

exec(executableFile,  function (error, stdout, stderr) {

    if (stdout) {
        // this only updates after the app exits
        console.log('stdout: ' + stdout);
        $('#console-output').append('stdout: ' + stdout +'<br/>');
    }

    if (error !== null) {
      console.log('exec error: ' + error);
    }

});

您需要使用spawn而不是exec

Spawn将数据作为流发送回去,因此您可以使用stdout.on(fn)对其进行stdout.on(fn)

var spawn = require('child_process').spawn;

var proc = spawn(executableFile);

proc.stderr.on('data', function(stderr) {
    console.log('exec error: ' + stderr); 
});

proc.stdout.on('data', function(stdout) {
    $('#console-output').append('stdout: ' + stdout.toString() + '<br/>');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM