NodeJS process.spawn - 退出事件未触发

时间:2015-06-07 23:54:21

标签: node.js

我正在尝试使用nodejs进程spawn。但不知何故,我无法使其发挥作用。我使用节点v0.12.2。 " gulp do-something"得到执行,我确实通过stdout看到输出..但退出事件永远不会被执行!

var task = spawn('gulp', [
      'do-something'
], {
        cwd: configs.workingDirectory
});

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

task.stderr.on('data', function (data) {
        console.log(data.toString());
});

task.on('exit', function (exitCode) {
        console.log("process.exitCode", exitCode)
});

当我尝试在stdio中使用spawn时:[' ipc']

var task = spawn('gulp', [
          'do-something'
    ], {
            cwd: configs.workingDirectory,
            stdio: ['ipc']
    });

退出事件被触发但在错误之后:

gulp: ../deps/uv/src/unix/core.c:833: uv__io_stop: Assertion `loop->watchers[w->fd] == w' failed.

我尝试了stdio的其他组合。它会导致task.stdout和task.sterr为null或退出事件不被触发..

1 个答案:

答案 0 :(得分:1)

设置for($i = 1; $i<= $_SESSION['quan']; $i++) { echo '<input type="text" name="nam_' . $i . '" size="35" value="'; if (array_key_exists($_SESSION["nam_$i"]) { echo $_SESSION["nam_$i"]; }; echo '"/><br />'; } 解决了问题!!