UNPKG

funthreads

Version:

A lightweight tool built on top of Node.js worker_threads, enabling multithreading.

29 lines (21 loc) 599 B
const path = require('path'); const { Worker } = require('worker_threads'); const workerPath = path.join(__dirname, 'worker.js'); module.exports = (workerData) => new Promise((resolve, reject) => { const worker = new Worker(workerPath, { workerData, }); let finished = false; worker.once('message', ({ errMessage, data }) => { finished = true; if (errMessage) reject(new Error(`Thread ${errMessage}`)); else resolve(data); }); worker.once('error', reject); worker.once('exit', () => { if (!finished) { finished = true; resolve(); } }); });