javascript 如何运行一个外部脚本,完成其中的所有承诺?

6vl6ewon  于 2023-02-18  发布在  Java
关注(0)|答案(1)|浏览(98)

我需要顺序启动外部脚本,条件是只有在完成外部脚本的全部内容(包括promises)后才启动下面的代码。我使用shell.js,但也许还有其他工具。我需要运行脚本,而不导入到“父”中。
外部脚本代码(external.js):

const fs = require("fs");
const util = require("util");

const write = util.promisify(fs.writeFile);

(async () => {
  await write("Hello.txt", "Hello");
})();

调用它的“父”代码:

const fs = require("fs");
const util = require("util");
const shell = require("shelljs");

const read = util.promisify(fs.readFile);

(async () => {
  await shell.exec("node external.js", { async: true });
  const data = await read('Hello.txt');
  // do something with data...
})();

请您告诉我,这个任务有没有可能实现,怎么实现?谢谢关注!

qgelzfjb

qgelzfjb1#

如果external.js执行文件操作,则node external.js进程将仅在文件操作完成后退出。

await util.promisify(child_process.exec)("node external.js");

应该能满足你要求。

相关问题