Node.js中的事件

时间:2016-02-12 09:59:36

标签: node.js eventemitter

https://nodejs.org/dist/latest-v5.x/docs/api/child_process.html的第一个例子如下:

const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', (data) => {
    console.log(`stdout: ${data}`);
});

ls.stderr.on('data', (data) => {
    console.log(`stderr: ${data}`);
});

ls.on('close', (code) => {
    console.log(`child process exited with code ${code}`)
});

这不是错的,因为实际上这个过程(在这种情况下是ls)可能会在一个人开始对事件作出反应之前结束,所以基本上会错过它们。

1 个答案:

答案 0 :(得分:0)

没有。虽然ls是"阻止"进程本身,节点中的子进程的产生是异步的,即上面的代码旋转一个新的进程,注册事件处理程序,然后当进程准备运行命令时它将执行ls。 / p>