deno.com

子进程:收集输出

我们不常单独编写程序。在很多情况下,我们希望与外部系统交互,而启动子进程是实现此目的的常用方式。

Deno 命名空间有一个与外部系统交互的统一 API,称为 Deno.Command。通过它,我们可以初始化有关命令的一些信息,但它不会立即执行。
const command = new Deno.Command("deno", {
  args: [
    "eval",
    "\
    console.log('hello from deno'); \
    console.error('hello from stderr'); \
    ",
  ],
});
在最简单的情况下,我们只想运行进程直到完成。这可以使用 command.output() 来实现。
let result = await command.output();
也可以使用 command.outputSync() 同步实现。
result = command.outputSync();
我们现在可以与 stdout 和 stderr 交互了。
const textDecoder = new TextDecoder();
console.log("stdout:", textDecoder.decode(result.stdout));
console.log("stderr:", textDecoder.decode(result.stderr));

使用 Deno CLI 在本地运行此示例

deno run --allow-run https://docs.deno.org.cn/examples/scripts/subprocesses_output.ts

您找到所需内容了吗?

隐私政策