繁体   English   中英

nodejs:不要等待生成的进程

[英]nodejs: do not wait spawned process

我正在使用child_process.spawn来运行一些应用程序,我想在这个应用程序启动后执行一些操作。 但是spawn阻塞了主进程

const spawnAsync = Promise.promisify(require('child_process').spawn);
console.log('BEFORE');   
await spawnAsync('../node_modules/.bin/some-app', ['-p', '3333'], {
    detached: true
});
console.log('AFTER');

在我的控制台中,我看到只有在3333端口上终止进程后才会记录BEFOREAFTER 我不想等待生成的进程,我想在spawnSync调用后执行一些操作。

查看spawn文档,你应该那样使用它

const childProcess = require('child_process');

const newProcessDescriptor = childProcess.spawn(
    '../node_modules/.bin/some-app', 
    ['-p', '3333'], 
    { detached: true }
);
      
newProcessDescriptor.on('error', (error) => {
    console.log(`child process creating error with error ${error}`);
});

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM