Deno 運行子進程

2020-06-24 17:07 更新

示例:

// 創(chuàng)建子進程
const p = Deno.run({
  cmd: ["echo", "hello"],
});


// 等待完成
await p.status();

運行

$ deno run --allow-run ./subprocess_simple.ts
hello

window.onload 被賦值為一個函數(shù),它將會在主腳本加載后被調(diào)用,和瀏覽器的 onload 一樣,可以用于主入口點。 默認情況下,當您調(diào)用 Deno.run() 時,子進程將繼承父進程的標準流。如果您想要和子進程通信,可以使用 "piped" 選項。

const fileNames = Deno.args;


const p = Deno.run({
  cmd: [
    "deno",
    "run",
    "--allow-read",
    "https://deno.land/std/examples/cat.ts",
    ...fileNames,
  ],
  stdout: "piped",
  stderr: "piped",
});


const { code } = await p.status();


if (code === 0) {
  const rawOutput = await p.output();
  await Deno.stdout.write(rawOutput);
} else {
  const rawError = await p.stderrOutput();
  const errorString = new TextDecoder().decode(rawError);
  console.log(errorString);
}


Deno.exit(code);

運行

$ deno run --allow-run ./subprocess.ts <somefile>
[file content]


$ deno run --allow-run ./subprocess.ts non_existent_file.md


Uncaught NotFound: No such file or directory (os error 2)
    at DenoError (deno/js/errors.ts:22:5)
    at maybeError (deno/js/errors.ts:41:12)
    at handleAsyncMsgFromRust (deno/js/dispatch.ts:27:17)
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號