Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/deebloo/worker
A tiny library to make using web workers easier.
https://github.com/deebloo/worker
Last synced: about 2 months 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 (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-12-15T14:38:14.000Z (about 1 year ago)
- Last Synced: 2024-05-10T05:04:12.068Z (8 months 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 workersExample:
```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 workersExample:
```JS
var workerGroup = $worker();workerGroup.create( ... );
workerGroup.create( ... );workerGroup.list().length === 2
```