You will walk away from this workshop being able to do all of these things by yourself.

  • 01. Understand all classes in RxJS

    You already know what an Observable is and how to use. Now you'll know all the extending subjects from the Observable class, how each one behaves, and when to use a Subject.

  • 02. Know the difference between unicasting and multicasting

    It sounds a bit nuanced, but you'll be equipped with the knowledge to know why an Observable is unicast and the benefits of multicasting. You'll understand that multicasting can be important for the performance of your application.

  • 03. How to create a multicasted Observable

    You'll know how to create a multicasted Observable and how to manage reference counting.

  • 04. Know all the variants of a Subject

    There are 4 variants (and subclasses) of the Subject. You'll know what how each one behaves, when to use it, and how to wire up a WebSocket with RxJS.

  • 05. Trust RxJS to handle exceptions

    Error handling is built into the core of Observables and RxJS. You'll be comfortable relying on Observables, and therefore RxJS, to provide the necessary guarantees to handle errors.

  • 06. Build custom operators

    You'll know what a higher-order Observable is and how to use the Pipe operator to create a custom operator, both using existing operators and building custom operators that do not use an existing operator.

  • 07. Write tests for custom operators

    There is no need to write tests for RxJS itself. Trust us, it's already very well tested. But, you should write tests for custom operators. You'll know how to use the `TestScheduler` and marble syntax for asserting that your custom operators are behaving as expected.

Day One

  1. Subject
  2. Recap Observer
    1. Observables are Unicast
    2. Exercise: Unicast
    3. Solution: Unicast
    4. Subjects are Multicast
    5. Exercise: Multicast
    6. Solution: Multicast
  3. Multicasting Operators
    1. multicast() Operator
    2. Exercise: multicast() Operator
    3. Solution: multicast() Operator
    4. refCount() Operator
    5. Exercise: refCount() Operator
    6. Solution: refCount() Operator
    7. publish() Operator
    8. Exercise: publish() Operator
    9. Solution: publish() Operator
  4. Subject Variants
    1. AsyncSubject
    2. Exercise: AsyncSubject
    3. Solution: AsyncSubject
    4. BehaviorSubject
    5. Exercise: BehaviorSubject
    6. Solution: BehaviorSubject
    7. ReplaySubject
    8. Exercise: ReplaySubject
    9. Solution: ReplaySubject
    10. WebSocketSubject
    11. Exercise: WebSocketSubject
    12. Solution: WebSocketSubject
  5. Error Handling
    1. Error Notification
    2. Error Notification
    3. throwError() Operator
    4. Exercise: throwError() Operator
    5. Solution: throwError() Operator
    6. catchError() Operator
    7. Exercise: catchError() Operator
    8. Solution: catchError() Operator
    9. finalize() Operator
    10. Exercise: finalize() Operator
    11. Solution: finalize() Operator
    12. retry() Operator
    13. Exercise: retry() Operator
    14. Solution: retry() Operator
    15. retryWhen() Operator
    16. Exercise: retryWhen() Operator
    17. Solution: retryWhen() Operator
    18. throwIfEmpty() Operator
  6. Custom Operators
    1. Higher Order Observables
    2. Exercise: Pipe Function
    3. Solution: Pipe Function
    4. Higher-order Function Operator
    5. Exercise: Higher-order Function Operator
    6. Solution: Higher-order Function Operator
  7. Testing
    1. TestScheduler
    2. Marble Syntax
    3. Getting Started with Marble Tests
    4. Exercise: First Test
    5. Solution: First Test
    6. Exercise: Subscription
    7. Solution: Subscription
    8. Exercise: Error
    9. Solution: Error
    10. Flush
    11. Exercise: Test Custom Operator
    12. Solution: Test Custom Operator

Prereqs

Students should be familiar with the following technologies:

  • JavaScript
  • RxJS Fundamentals

Can’t find the topic you are looking for? Contact Us  to learn about our custom training solutions.

Get Expert Led Training For Your Team
Schedule Advanced RxJS Workshop