Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. @Injectable({
  2. providedIn: 'root',
  3. })
  4. export class WorkerService {
  5.  
  6. /** [...] **/
  7.  
  8. private createWorkerObservableForTask(worker: Worker, task: BackgroundTask): Observable<BackgroundTaskMessage> {
  9. return Observable.create((observer: any) => {
  10. worker.addEventListener('message', event => {
  11. const message: BackgroundTaskMessage = event.data;
  12. if (message.taskId === task.id) {
  13. observer.next(message);
  14. if (message.taskStatus === 'TERMINATED') {
  15. observer.complete();
  16. worker.terminate();
  17. }
  18. }
  19. });
  20. worker.addEventListener('error', error => observer.error(error));
  21. this.notify(task.id, 'start', task);
  22. });
  23. }
  24.  
  25. /** [...] **/
  26.  
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement