Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Injectable({
- providedIn: 'root',
- })
- export class WorkerService {
- /** [...] **/
- private createWorkerObservableForTask(worker: Worker, task: BackgroundTask): Observable<BackgroundTaskMessage> {
- return Observable.create((observer: any) => {
- worker.addEventListener('message', event => {
- const message: BackgroundTaskMessage = event.data;
- if (message.taskId === task.id) {
- observer.next(message);
- if (message.taskStatus === 'TERMINATED') {
- observer.complete();
- worker.terminate();
- }
- }
- });
- worker.addEventListener('error', error => observer.error(error));
- this.notify(task.id, 'start', task);
- });
- }
- /** [...] **/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement