aww

angular2-web-worker

Web worker for Angular 2

Showing:

Popularity

Downloads/wk

22

GitHub Stars

53

Maintenance

Last Commit

4yrs ago

Contributors

4

Package

Dependencies

0

Size (min+gzip)

1.0KB

License

ISC

Type Definitions

Tree-Shakeable

No?

Categories

Readme

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(url: string, data?: any): Promise<any>;
    terminate<T>(promise: Promise<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;
    }
}

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial