Deno进程操作API
May 4, 2020 · View on GitHub
API使用方式
更多详细信息可参考官方API文档 https://doc.deno.land/https/github.com/denoland/deno/releases/latest/download/lib.deno.d.ts#Deno.run
Deno.run({ cmd:[], stdout: '' })cmd为字符串数组,拼接起来是子进程的执行命令stdout是输出方式,可选。- 如果设置了管道
"piped",打印输出的信息将会在Deno.run({...}).stdout输出数据流 stdout输出数据流需要进行读取await stdout.read(new Uint8Array(1024))
- 如果设置了管道
使用例子
例子源码地址 https://github.com/chenshenhai/deno_note/blob/master/demo/process/
开启一个子进程
// 用子进程启动 HTTP 服务
const process = Deno.run({
cmd: [Deno.execPath(), "run", "--allow-net", "./server.ts"]
});
// 延时关闭HTTP服务
setTimeout(() => {
process.close();
}, 1000 * 60)
开启一个子进程同时用管道输出
async function main() {
const process: Deno.Process = Deno.run({
cmd: [Deno.execPath(), "run", "--allow-net", "./server.ts"],
stdout: "piped",
});
const stdout: Deno.ReadCloser|undefined = process.stdout;
if (stdout) {
const chunk = new Uint8Array(1024);
await stdout.read(chunk);
console.log(`[process.stdout]: ${new TextDecoder().decode(chunk)}`)
}
setTimeout(() => {
process.close();
console.log('close process');
}, 1000 * 60);
}
main();