[英]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.