Deno 中如何执行外部进程

Deno 是一个现代的、安全的 JavaScript 和 TypeScript 运行时环境。它使用 V8 引擎还提供了一些有用的内置模块,其中包括子进程模块,使得在 Deno 中执行外部进程非常方便。本文将介绍如何在 Deno 中使用子进程模块来执行外部进程的方法。

在 Deno 中执行外部命令

子进程模块是 Deno 标准库的一部分,可以使用 Deno.run() 方法来创建子进程并与其交互。这个方法返回一个对象,该对象包含运行进程的标准输入、输出和错误流。

下面是一个简单的示例,展示了如何在 Deno 中执行外部命令并获得输出:

在这个示例中,我们使用 Deno.run() 方法创建一个子进程,传入 echoHello, world! 作为参数。我们随后调用 status() 方法获取子进程状态,包括返回码、进程消耗的 CPU 时间等等,同时通过 close() 方法关闭进程的标准输入、输出和错误流。

在 Deno 中捕获外部命令的输出

对于一些需要捕获外部命令输出的场景,可以通过指定 stdoutstderr 属性来实现:

在这个示例中,我们指定了 stdoutstderr 属性为 "piped",这意味着我们需要从子进程读取输出。我们随后根据进程状态获取输出或错误,通过 output()stderrOutput() 方法读入原始数据,使用 TextDecoder 解码方式将二进制数据转换成字符串,最后输出在控制台上。

在 Deno 中异步执行外部命令

在某些情况下,我们需要异步执行外部命令。对于这种场景,我们可以传递第二个参数 opts 来控制执行方式。

在这个示例中,我们可以看到传入了 readAll() 函数以接收子进程的输出数据。通过这种方式,我们可以在异步执行外部命令的过程中读取到完整的子进程输出,以便在后续使用。

总结

在本文中,我们介绍了一个使用 Deno 中子进程模块来执行外部进程的方法,并提供了示例代码。我们可以看到,使用 Deno 中子进程模块来执行外部进程非常简单。无论是同步执行还是异步执行外部进程,Denno 在执行都提供了很大的灵活性,并且执行起来非常安全。希望本文能够为您在 Denno 中使用子进程模块提供一些帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652b40f07d4982a6ebd3f549


纠错
反馈