mirror of
https://github.com/denoland/deno.git
synced 2024-10-31 09:14:20 -04:00
aca21dad1b
This commit makes "Worker.deno" option unstable. Added new manual entry "docs/runtime/workers.md". Removed stale workers tests.
1.3 KiB
1.3 KiB
Workers
Deno supports
Web Worker API
.
Workers can be used to run code on multiple threads. Each instance of Worker
is run on a separate thread, dedicated only to that worker.
Currently Deno supports only module
type workers; thus it's essential to pass
type: "module"
option when creating new worker:
// Good
new Worker("./worker.js", { type: "module" });
// Bad
new Worker("./worker.js");
new Worker("./worker.js", { type: "classic" });
Using Deno in worker
UNSTABLE: This feature is unstable and requires --unstable
flag
By default Deno
namespace is not available in worker scope.
To add Deno
namespace pass deno: true
option when creating new worker:
// main.js
const worker = new Worker("./worker.js", { type: "module", deno: true });
worker.postMessage({ filename: "./log.txt" });
// worker.js
self.onmessage = async (e) => {
const { filename } = e.data;
const text = await Deno.readTextFile(filename);
console.log(text);
self.close();
};
// log.txt
hello world
$ deno run --allow-read --unstable main.js
hello world
When Deno
namespace is available in worker scope; the worker inherits parent
process permissions (the ones specified using --allow-*
flags).
We intend to make permissions configurable for workers.