https://github.com/deebloo/worker
A tiny library to make using web workers easier.
https://github.com/deebloo/worker
Last synced: about 1 year ago
JSON representation
A tiny library to make using web workers easier.
- Host: GitHub
- URL: https://github.com/deebloo/worker
- Owner: deebloo
- License: mit
- Created: 2015-05-09T23:51:09.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2023-12-15T14:38:14.000Z (over 2 years ago)
- Last Synced: 2024-05-10T05:04:12.068Z (about 2 years ago)
- Language: JavaScript
- Homepage:
- Size: 15.3 MB
- Stars: 37
- Watchers: 6
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# $worker
A tiny library to help make using web workers easier. (<1k)
For more info on web workers look [here](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers)
### Install
```
npm i inline-web-worker --save
```
#### Support
Chome, Firefox, Safari, and IE11+
### Basic Usage
```JS
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'
});
```
### API
#### $worker
factory - creates instance of $worker that can then be used to create web workers
Example:
```JS
var worker = $worker();
```
#### $worker().create()
creates a new web worker
| Arg | Type | description |
| --------|----------|-------------------------------------|
| fn | Function | the function to run in a web worker |
Example:
```JS
function helloWorld() {
self.postMessage('Hello World');
}
var myWorker = $worker().create(helloWorld);
```
#### $worker().create().run()
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:
```JS
$worker()
.create(function (e) {
self.postMessage(e.data.toUpperCase());
})
.run('hello world')
.then(function (e) {
console.log(e.data) // HELLO WORLD
});
```
#### $worker().runAll()
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:
```JS
var workerGroup = $worker();
workerGroup.create( ... );
workerGroup.create( ... );
workerGroup
.runAll([...data])
.then(function () {
... do stuff
});
```
#### $worker().list()
Returns a list of all of the created workers
Example:
```JS
var workerGroup = $worker();
workerGroup.create( ... );
workerGroup.create( ... );
workerGroup.list().length === 2
```