我正在尝试使用Node和Electron围绕现有的ruby命令行应用程序编写GUI。我找到了一个如何通过执行以下操作从子进程获取输出的示例:
.image {
width: 50%;
height: auto;
}
.overlay {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin-left:auto;
margin-right:auto;
height: auto;
width: 50%;
opacity: 0;
transition: .5s ease;
background-color: rgba(0,0,0,0.65);
}
.hover-img:hover .overlay {
opacity: 1;
}
.text{
color: white;
font-size: 20px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
}
.nopadding{
padding:0 !important;
}
而child.js看起来像这样
var spawn = require('child_process').spawn;
var child = spawn('node', ['child.js']);
child.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
child.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
这对我来说很好,但如果我尝试使用ruby应用程序切换到此
while(true) {
console.log('blah');
}
这是红宝石代码
var child = spawn('ruby', ['test.rb']);
我没有输出。它似乎挂在输出上。我希望每2秒钟看一次“测试”。