@deebloo/worker
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.7 • Public • Published

    $worker CircleCI

    A tiny library to help make using web workers easier. (>1k)

    For more info on web workers look here

    Install

    npm i @deebloo/worker --save
    

    Support

    Chome, Firefox, Safari, and IE11+

    takes advantage of promises, if running in browser with no native support use shim.

    npm i es6-promise --save
    

    Basic Usage

    // if using webpack/browserify
    var $worker = require('@deebloo/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:

    var worker = $worker();

    $worker().create()

    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);

    $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:

    $worker()
      .create(function (e) {
          self.postMessage(e.data.toUpperCase());
      })
      .run('hello world')
      .then(function (e) {
          console.log(e.data) // HELLO WORLD
      });

    $worker().list()

    Returns a list of all of the created workers

    Example:

    var workerGroup = $worker();
     
    workerGroup.create( ... );
    workerGroup.create( ... );
     
    workerGroup.list().length === 2

    Install

    npm i @deebloo/worker

    DownloadsWeekly Downloads

    1

    Version

    1.0.7

    License

    MIT

    Last publish

    Collaborators

    • deebloo