A tiny library to help make using web workers easier. (<1k)
For more info on web workers look here
npm i inline-web-worker --save
Chome, Firefox, Safari, and IE11+
var $worker = require('inline-web-worker');
// if using as global
var $worker = window.$worker;
// pass in a function to be run in a separate thread
var myWorker = $worker().create(function () {
self.postMessage('Hello World');
});
// run the worker respond to the promise
myWorker.run().then(function (e) {
console.log(e.data); // 'Hello World'
});
factory - creates instance of $worker that can then be used to create web workers
Example:
var worker = $worker();
creates a new web worker
Arg | Type | description |
---|---|---|
fn | Function | the function to run in a web worker |
Example:
function helloWorld() {
self.postMessage('Hello World');
}
var myWorker = $worker().create(helloWorld);
Post data for the web worker to use. Runs the web worker and returns a promise;
Arg | Type | description |
---|---|---|
data | * | the data to be posted (cannot be function) |
Example:
$worker()
.create(function (e) {
self.postMessage(e.data.toUpperCase());
})
.run('hello world')
.then(function (e) {
console.log(e.data) // HELLO WORLD
});
Run all workers in a group. resolves promise when all workers are successful.
Arg | Type | description |
---|---|---|
data | * | the data to be posted (cannot be function) |
Example:
var workerGroup = $worker();
workerGroup.create( ... );
workerGroup.create( ... );
workerGroup
.runAll([...data])
.then(function () {
... do stuff
});
Returns a list of all of the created workers
Example:
var workerGroup = $worker();
workerGroup.create( ... );
workerGroup.create( ... );
workerGroup.list().length === 2