
Explore the RxJS subjects & operators course application built with Angular 14, navigate the home page and map operator demonstration, and review the code structure for each topic.
Explore the core of RxJS, including observables, subjects, creation operators and pipeable operators, and learn when to use reactive programming patterns with practical code examples.
Explore how an observable emits values using next, error, and complete, and manage subscriptions with unsubscribe. Compare cold and hot producers and unicast versus multicast behavior.
This lecture compares imperative and reactive programming in RxJS, showing how declarative approaches simplify complex multi-API scenarios and avoid nested subscriptions.
Explore RxJS subjects as both observable and observer, including regular, behavior, replay, and async types. Learn how early and late subscribers, emissions, and completion shape their behavior.
Learn how to use RxJS subjects to create custom operators, built-in subjects like behavior subject and replay subject enable multicasting, and represent UI state as observables for reactive programming.
Present an overview of reactive programming with RxJS, detailing observables, subjects, and operators to build declarative Angular UIs using an observable data service, HTTP client, and async pipe.
Explore reactive programming by building a dropdown UI that fetches jurisdictions via an API, uses a behavior subject and observables, and derives a display for selected jurisdiction’s name and code.
discover how the RxJS interval operator creates an observable that emits sequential numbers starting at zero at the period in milliseconds, enabling simple polling patterns.
Demonstrate how the take operator returns the first n emissions and completes, and clarify the difference between the pipe method and the async pipe in angular templates.
Explore the delay operator in RxJS, a pipeable utility that shifts the start of the source observable by time or future date, preserving the same values as the source.
Discover how the of operator acts as a creation operator in RxJS, emits each passed value synchronously, and completes after last emission, with examples using strings, numbers, and customer objects.
Learn how the from operator in rxjs creates observables from arrays, promises, and strings, emitting each element or character and completing after the last item.
Explore how http client methods and creation operators such as of and from produce completing observables, and how the take operator enforces completion when used as inner observables for responsiveness.
explore rxjs transformation operators with the map operator, a pipeable transformer that maps values, removes properties, formats names, computes ages, sorts data, and handles pipeline limits.
Master the tap operator, a pipeable RxJS utility that performs side effects in the pipeline, logs emissions and lifecycle events, and supports a tap observer for subscribe, unsubscribe, and finalize.
Learn to create custom pipeable operators and turn pipelines into reusable functions with higher order functions. See how add full name property uses map to concatenate first and last names.
Create a custom pipeable log operator using RxJS tap to log labeled, colorized outputs for observable changes. Configure label, callback, background color, and collapse group for efficient debugging.
Create a custom pipeable sort operator in RxJS using generics and strong typing to sort an array of objects by a key and order (ascending or descending), with compile-time checks.
Learn how the RxJS filter operator uses a predicate to emit only emissions that pass a boolean test, and how from and map enable handling arrays and higher order observables.
Use the concatAll operator to flatten a higher order observable by subscribing to inner observables in order, emitting values only after each inner completes.
Learn how the toArray operator collects individual emissions into a single array after the source observable completes, enabling display of combined data from multiple back-end calls.
Explore RxJS forkJoin, a creation join operator that emits a tuple of the last values from completing observables when all complete, then populate the UI with customers and accounts.
Explore how the combineLatest operator emits an array of the latest values from multiple observables, enabling UI filtering. It does not require input completion and completes when inputs finish.
Learn how debounce time filters emissions by emitting after a pause in milliseconds, reducing redundant updates in user inputs, and contrast it with throttle time's leading and trailing behavior.
Use distinct until changed to filter out consecutive duplicate emissions by comparing each value to the previous; the first emitted value always passes, with optional comparator or key selector.
Explore how withLatestFrom compares to combineLatest in RxJS, enabling you to incorporate the latest value from another observable without triggering reprocessing of your pipeline.
Explore how the RxJS merge operator emits a single value (not an array) from the active observable, enabling a unified crud pipeline in a ui.
Explore the shareReplay operator in RxJS, a multicast pipeable operator that caches the first pipeline result and replays it to all subscribers, reducing repeated executions and side effects.
Master the rxjs zip operator, emitting values only when all observables emit in sync and completing when any completes, then apply it to reset filters with a single update.
Use the defer operator to lazily create an observable per subscriber via an observable factory, ensuring each subscriber receives a unique, potentially different value instead of a shared eager one.
Master the RxJS groupBy operator, which groups source emissions into higher-order observables using a key selector, with optional element, duration, and connector, and flatten with merge all.
Learn higher-order mapping operators in rxjs that create and flatten inner observables: concatmap preserves order, merge map runs in parallel, switchmap cancels, and exhaust map ignores new emissions.
Refactor application with RxJS concatMap: deleting current customers observable, make CRUD observables return boolean true, and perform a second backend call to fetch the latest customers after each operation.
Refactor the app with the mergeMap operator, compare it to concatMap and mergeAll in a jurisdiction-based grouping flow, and demonstrate faster parallel API calls and smoother UI loading.
Discover how switch map handles type-ahead scenarios with back-end calls, cancels inner observables, and when to use debounce time for front-end filtering.
Demonstrate how exhaust map ignores rapid consecutive clicks by processing only the first inner observable, preventing multiple requests in a user interface, shown with a refresh button fetching customers.
Explore how the share and share replay operators multicast, reset pipelines, and handle late subscribers. Learn to avoid replaying stale data by choosing the right operator for your scenario.
Explore how the scan operator uses an accumulator function and a seed to manage state for CRUD operations (read, create, update, delete), reducing backend calls from two to one.
Learn how the RxJS catchError pipeable operator uses a selector function to return an observable—the source, an observable via creation operators, or one that throws an error—to enable error recovery.
Learn how the finalize operator, a pipeable utility in RxJS, executes a function when an observable completes, errors, or is unsubscribed, and compare it to the tap observer's finalize callback.
Have you just been tasked with your first coding project that involves RxJS but have no knowledge of the technology?
Do you already have experience using the map and tap operators but want to learn more about some of the other operators in the RxJS library?
Are you interested in learning more about the Reactive Programming style?
You've come to the right course!
In this course, you'll start learning the basics of RxJS and work you way to the more advanced topics.
The course includes detailed discussions on each of the following RxJS features:
Subjects: Subject, BehaviorSubject, ReplaySubject, AsyncSubject
Creation Operators: interval, of, from, defer
Filtering Operators: take, filter, debounceTime, throttleTime, distinctUntilChanged
Creation Join Operators: forkJoin, combineLatest, merge, zip
Pipeable Join Operators: concatAll, mergeAll, withLatestFrom
Transformation Operators: map, groupBy, scan
Higher Order Mapping Operators: concatMap, mergeMap, switchMap, exhaustMap
Utility & Error Handling Operators: tap, delay, toArray, catchError, finalize
Multicasting Operators: shareReplay, share
We'll cover the following topics:
An Observables Primer
Imperative vs Reactive Programming
How to Create Custom Operators: including operators for logging, sorting and showing/hiding a loading indicator
Understanding the official RxJS documentation, especially marble diagrams
To help you learn how to code each RxJS feature, we'll use an Angular application that we'll build and extend throughout the entirety of the course.
And there are a few topics that employ charming little demos to help get the point across.
To be mindful of students with varying levels of programming expertise, the instructor maintains a slow to moderate speaking voice. Feel free to play the videos with an increased speed if that benefits you.
There's a lot to learn.
So, LET'S GET STARTED!