RxJS fundamentals: Observables, creating streams, pipe, the core operators, timing, and flattening.
● 1. Why RxJS in Angular ● 2. Push vs Pull and lazy execution ● 3. The lifecycle: next, error, complete ● 4. Teardown and unsubscribe ● 5. The of creation operator ● 6. The from creation operator: arrays ● 7. of(array) vs from(array) ● 8. from: Promises ● 9. defer: a factory on every subscription ● 10. EMPTY and throwError ● 11. timer: a delayed value ● 12. interval and take ● 13. pipe and map ● 14. map: DTO to ViewModel ● 15. filter: let through only what you need ● 16. tap: look without changing ● 17. startWith: an initial value for the UI ● 18. distinctUntilChanged: drop the repeats ● 19. delay: postpone values ● 20. debounceTime: wait for quiet ● 21. Search: debounceTime + distinctUntilChanged ● 22. Higher-Order Observables ● 23. mergeMap: parallel tasks ● 24. concatMap: a task queue ● 25. switchMap: the latest request wins ● 26. exhaustMap: ignore while busy Combining streams, error handling, Subjects, multicasting, and state patterns.
● 27. How to choose a flattening operator ● 28. merge and concat: merge or queue ● 29. combineLatest: the latest value from every source ● 30. withLatestFrom: an event plus current state ● 31. forkJoin: wait for every task to finish ● 32. UI filters with startWith and combineLatest ● 33. An error is a terminal event ● 34. catchError: a fallback instead of a crash ● 35. catchError inside switchMap ● 36. retry: re-run the source after an error ● 37. finalize: cleanup after completion or error ● 38. Subject: a hot multicast stream ● 39. BehaviorSubject: current state ● 40. ReplaySubject: a history of values ● 41. share: one source for several subscribers ● 42. shareReplay: a shared source plus a cache ● 43. scan: state as accumulation ● 44. scan as a reducer ● 45. scan and an immutable todo list ● 46. Effects pattern: actions in, async work out Marble testing and hands-on capstones: typeahead, autosave, submit protection, caching, and custom operators.
● 47. Marble testing: your first stream test ● 48. Marble testing: testing map and filter ● 49. Project: typeahead search ● 50. Project: autosave draft ● 51. Project: protecting the submit button ● 52. Project: sequential requests ● 53. Project: parallel uploads with concurrency ● 54. Project: cache a request with shareReplay ● 55. Project: a custom operator for debug logs ● 56. Final exam: a liveSearch operator