首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将产卵的ChildProcess返回到其他文件?

问如何将产卵的ChildProcess返回到其他文件?
EN

Stack Overflow用户
提问于 2022-08-05 13:58:11
回答 1查看 24关注 0票数 0

我有用例,比如运行一个进程。当在其他文件中调用该进程的退出代码时,我需要分离实现。例如,应用程序运行ping过程。在特定的事件中,从应用程序可以杀死进程。

问题是不能返回ping实例。还没有定义。

ping.js

代码语言:javascript
复制
const { spawn } = require('child_process');

class Ping {
    flags:  string[];

    constructor(flags: string[]) {
        this.flags = [...flags]
    }

    run() {
        const ping = spawn('ping', this.flags);

        ping.on('spawn', () => {
            return ping
        })
    }
}

export = Ping

application.js

代码语言:javascript
复制
const Ping = require('ping.js');

const duration = 5000;
const end_time = Date.now() + duration;
const flags = ['-t', 'stackoverflow.com'];
const ping = new Ping(flags)
const pingProcess = ping.run();

pingProcess.stdout.on('data', chunk => {
    console.log(chunk.toString())
})

while(true) {
  const current_time = Date.now();

  if (current_time > end_time) {
    pingProcess.kill()
    break;
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-05 14:20:20

您可以在生成子进程后立即返回它:

代码语言:javascript
复制
class Ping {
    flags:  string[];

    constructor(flags: string[]) {
        this.flags = [...flags]
    }

    run() {
        const ping = spawn('ping', this.flags);

        ping.on('error', () => {
            /* error handling logic */
        })

        return ping
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73250945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档