【发布时间】:2021-06-02 13:54:29
【问题描述】:
实际上,我在异步函数中运行我的 exec 任务。执行后,软件启动并循环运行。
执行此操作后,我的 node.js 应用程序停止运行代码。
如何从 node.js 开始运行另一个应用程序并忽略结果并继续执行代码?
import util = require('util');
const exec = util.promisify(require('child_process').exec);
export class ExecClass{
public static async run(...parameters: (number | string)[]) {
const app=parameters[0];
parameters=parameters.slice(1);
const cmd = app+ " " + parameters.join(" ");
const { stdout, stderr } = await exec(cmd);
}
}
编辑:
在我的调用代码之后,我只是在我的数据库中进行了一些编辑。
我的调用代码:
import {ExecClass} from "./exec-class";
async function run() {
await ExecClass.run(cmd, data.id, data.startDate, data.endDate, data.idx);
}
【问题讨论】:
-
child_process.exec()不会阻止。因此,您的 nodejs 程序应该能够在运行时执行其他操作。您能否显示调用代码以及调用此代码后您还期望做什么? -
我刚刚添加了我的调用代码
-
这并没有显示任何有用的东西。你还想做什么。您的问题是“我的 node.js 应用程序停止使用代码”。那么,您还希望它执行什么,该代码在哪里?您是否看到任何错误?还是只是等到执行完成后再继续?
-
它只是等到 exec 完成,然后它才继续我的代码。以下代码只是一些计算
-
然后,如果您不想让您的代码等待它,只需删除
ExecClass.run()前面的await。不过,您应该在上面加上.catch(),这样您就不会遇到未处理的拒绝。
标签: node.js exec child-process