Guest User

Untitled

a guest
Nov 17th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. const source$ = Rx.Observable.of(1,2,3,4)
  2.  
  3. const job$ = source$
  4. .do(x=>console.log("emitted from source " + x))
  5. .switchMap(n => fakeAsyncWork(n))
  6. .do(x=>console.log("emitted from switch " + x))
  7. .scan((a,c) => a.concat(c), [])
  8.  
  9.  
  10. let fakeAsyncWork = (sec): Rx.Observable<any> => {
  11. return new Rx.Observable(observer => {
  12. console.log("start waiting for " + sec);
  13. setTimeout(() => {
  14. console.log("finish waiting " + sec);
  15. observer.next(sec)
  16. }, sec*1000);
  17.  
  18. });
  19. }
  20.  
  21. job$.subscribe(x => console.log(x) );
  22.  
  23. "emitted from source 1"
  24. "start waiting for 1"
  25. "emitted from source 2"
  26. "start waiting for 2"
  27. "emitted from source 3"
  28. "start waiting for 3"
  29. "emitted from source 4"
  30. "start waiting for 4"
  31. "finish waiting 1"
  32. "finish waiting 2"
  33. "finish waiting 3"
  34. "finish waiting 4"
  35. "emitted from switch 4"
  36. [4]
Add Comment
Please, Sign In to add comment