kururu
V2EX  ›  Node.js

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

  •  
  •   kururu · Jul 23, 2014 · 6183 views
    This topic created in 4352 days ago, the information mentioned may be changed or developed.
    我想要调用自己写的C++控制台程序,用node-webkit封装界面,请问node.js里面的子进程模块是不是只能在子进程运行结束之后才能返回标准输出?有没有办法可以实现实时获取输出呢?
    2 replies    2014-07-24 13:52:26 +08:00
    fansekey
        1
    fansekey  
       Jul 23, 2014
    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  
       Jul 24, 2014
    h.stdout.pipe( your stream handler goes here )
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1174 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 17:42 · PVG 01:42 · LAX 10:42 · JFK 13:42
    ♥ Do have faith in what you're doing.