developit / workerize

🏗️ Run a module in a Web Worker.
https://github.com/developit/workerize-loader
4.35k stars 91 forks source link
threading web-worker web-workers

💖 Using Webpack? You want workerize-loader ➡️

workerize

Workerize npm travis

Moves a module into a Web Worker, automatically reflecting exported functions as asynchronous proxies.

Install

npm install --save workerize

Usage

Pass either a function or a string containing code.

worker.js:

let worker = workerize(`
    export function add(a, b) {
        // block for half a second to demonstrate asynchronicity
        let start = Date.now();
        while (Date.now()-start < 500);
        return a + b;
    }
`);

(async () => {
    console.log('3 + 9 = ', await worker.add(3, 9));
    console.log('1 + 2 = ', await worker.add(1, 2));
})();

License

MIT License © Jason Miller