angular2-web-worker

    0.0.6 • Public • Published

    What is this?

    Web worker service for Angular 2.

    Install

    npm i angular2-web-worker

    API

    export interface IWebWorkerService {
        run<T>(workerFunction: (any) => T, data?: any): Promise<T>;
        runUrl(urlstring, data?: any): Promise<any>;
        terminate<T>(promisePromise<T>): Promise<T>;
    }
    • run
      • workerFunction:
        • Must be a self-contained function. Cannot reference outside variables.
        • You can import other libraries with importScripts though
        • These are okay:
        • run(input => input * input, 10);
           
          run(input => {
              const square = num => num * num;
              return square(input);
          }, 10);
           
          const someFunction = (input) => input * input);
          run(someFunction, 10);
           
          class Runner {
              private webWorkerService = new WebWorkerService();
              constructor() {
                  this.webWorkerService.run(this.someFunction, 10);
              }
              someFunction() {
                  return input * input;
              }
          }
        • These will probably NOT work:
        • // this is not okay because inside the context of the web worker `this` is not the same `this` as here.
          run(input => this.square(input), 10); 
           
          // this is not okay because `_` doesn't exist in the web worker context (assuming tht `_` is available here to begin with)
          run(input => {
              return _.uniqueId() * input;
          }, 10);
      • data: serializable data
    • runUrl: Basically the same as
      • url: The url you would use to create a Worker instance
      • data: Same as the run method
    • terminate: Calling this will terminate the web worker, if it is still running.
      • promise: The Promise instance returned by run or runUrl.

    Example

    Check out angular2-web-worker-example for a sample project, or see app/app.component.ts for usage with an Angular 2 application.

    export class AppComponent implements OnInit {
        constructor(private _webWorkerService: WebWorkerService) {
        }
        
        ngOnInit() {
            const input = 100;
            const promise = this._webWorkerService.run(this.someCPUHeavyFunction, input);
            promise.then(result => console.log(result));
        }
        
        someCPUHeavyFunction (input) {
            return input * 10;
        }
    }
    

    Install

    npm i angular2-web-worker

    DownloadsWeekly Downloads

    51

    Version

    0.0.6

    License

    ISC

    Last publish

    Collaborators

    • haochi