/
githubmirror
/
deno
Обзор
Документация
Войти
/
githubmirror
/
deno
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tests/specs/node/worker_threads/message_port.mjs
41 строка
1 KB
Bartek Iwańczuk
fix(ext/node): improve worker_threads path validation and error handling (#32791)
18 мар 2026, 09:19
Не верифицирован
18 мар 2026, 09:19
cca89e6
Код
Авторство
О чём код?
import workerThreads from "node:worker_threads"; const { port1: mainPort, port2: workerPort } = new workerThreads .MessageChannel(); // Note: not using Promise.withResolver() because it's not available in Node.js const deferred = createDeferred(); const worker = new workerThreads.Worker( new URL("./message_port_1.cjs", import.meta.url), { workerData: workerPort, transferList: [workerPort], }, ); worker.on("message", (data) => { console.log("worker:", data); mainPort.on("message", (msg) => { console.log("mainPort:", msg); deferred.resolve(); }); mainPort.on("close", (_msg) => { console.log("mainPort closed"); }); }); worker.postMessage("Hello from parent"); await deferred.promise; await worker.terminate(); mainPort.close(); function createDeferred() { let resolveCallback; let rejectCallback; const promise = new Promise((resolve, reject) => { resolveCallback = resolve; rejectCallback = reject; }); return { promise, resolve: resolveCallback, reject: rejectCallback }; }