V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kururu
V2EX  ›  Node.js

关于 node.js 中的子进程可否实时获取标准输出?

  •  
  •   kururu · 2014-07-23 14:39:07 +08:00 · 5352 次点击
    这是一个创建于 3806 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想要调用自己写的C++控制台程序,用node-webkit封装界面,请问node.js里面的子进程模块是不是只能在子进程运行结束之后才能返回标准输出?有没有办法可以实现实时获取输出呢?
    2 条回复    2014-07-24 13:52:26 +08:00
    fansekey
        1
    fansekey  
       2014-07-23 19:01:01 +08:00
    var spawn = require('child_process').spawn;

    var h = spawn('ls', ['-l', '.']);

    h.stdout.on('data', function (s) {
    console.log(s.toString());
    });

    h.stdout.on('end', function () {
    console.log('ls done');
    });

    可以这么做;子进程的h.stdout其实是个流,你可以这么边执行边获取子进程的标准输出。
    stormslowly
        2
    stormslowly  
       2014-07-24 13:52:26 +08:00
    h.stdout.pipe( your stream handler goes here )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5433 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:19 · PVG 15:19 · LAX 23:19 · JFK 02:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.