We may earn an affiliate commission when you visit our partners.
Course image
Jurek Wozniak

Have you joined a project which uses the Observables and RxJS and have no idea how to use it?Are you already using RxJS and Observables and its behavior keeps surprising you?Do you want to learn a new tool to conveniently handle asynchronous code?If you responded YES to any of the above questions, then this might be a great course for you. RxJS is known to have a steep learning curve. There are many courses, articles, docs on the Internet which are great and cover a lot of complex RxJS scenarios, however I've noticed that it is difficult to start going and make first steps. Also, many experienced RxJS users still make some basic mistakes from time to time as they don't understand the mechanics of the Observables well.

Read more

Have you joined a project which uses the Observables and RxJS and have no idea how to use it?Are you already using RxJS and Observables and its behavior keeps surprising you?Do you want to learn a new tool to conveniently handle asynchronous code?If you responded YES to any of the above questions, then this might be a great course for you. RxJS is known to have a steep learning curve. There are many courses, articles, docs on the Internet which are great and cover a lot of complex RxJS scenarios, however I've noticed that it is difficult to start going and make first steps. Also, many experienced RxJS users still make some basic mistakes from time to time as they don't understand the mechanics of the Observables well.

This course will help you enter the world of RxJS in a slow step-by-step way. It might even help more advanced RxJS users fill the missing gaps in their understanding of the Observables and RxJS.The objective of this course is to give you a great set of tools to start your RxJS journey.

You will learn here the core concepts of RxJS, such as:

  • Observables

  • Subscriptions

  • Observers

  • Creation Functions

  • Pipeable Operators

  • Subjects

The first sections of this course will present the basics of the Observables and RxJS in a slow and detailed way. We'll have a look at the idea of streams and reactive programming to understand how the data comes to us when using the Observables. I'll show you what kind of sources can we find in the world of Observables. You'll learn how can we execute an Observable by making Subscriptions, and how can we react to the notifications emitted by providing Observers. We'll use Marble Diagrams to present things in an easy to understand graphical way. There will also be a plenty of coding sections explaining each feature.

After we get the theory behind the Observables clarified, we'll move towards more practical uses of RxJS.We'll use Creation Functions to easily create Observable from various sources like: arrays, DOM events, HTTP requests, timers, intervals and combining multiple Observables together. We'll use the Pipeable Operators to create more complex Observables.

Finally, we'll learn about the Subjects, which are a special type of Observable which allow us to conveniently emit a value to all Observers.After you finish this course, you'll be able to start using the Observables and other RxJS tools in your apps and understand the articles, videos and docs on the Internet, so you can continue your RxJS journey.Let's get started.

This course uses OpenMoji emojis and icons in some of the videos (CC BY-SA 4.0 license)Promo music: Royalty Free Music from Bensound

Enroll now

What's inside

Learning objectives

  • By completing this course you will understand how observables work, behave and how to use them.
  • You will learn the basics (and much, much more) of rxjs in a slow step-by-step manner.
  • You will have a good understanding of the observables and other key rxjs topics, such as: subscriptions, observers, operators, subjects
  • After you finish this course, you will be able to understand other, more advanced articles, videos and docs available on the internet.
  • You will have a great set of tools to start your rxjs journey.

Syllabus

Getting Started
Course Introduction
RxJS Overview
Quick Start
Read more
Optional: Using your own IDE
Course Plan
Learning Tips
Observable - how does it work?
Module Introduction
Array vs Stream
Observable, Subscription, Observer - Key Elements
Warm-up Observable - Observable, Observer, Subscription
Warm-up Observable - Multiple Subscriptions
Observable Basics
Marbles Introduction
Marbles - Next, Error, Complete
Marbles - Notification Types Summary
Marbles - Incorrect Scenarios
Marbles - Appearance
Marbles - Game
Marbles - Docs
Marble Diagrams and Notification Types
Module Summary
Exercises: Observable, Observer and Subscription
Subscription Lifecycle
Execution Timing - Empty Observable
Synchronous Emission - Next Notification
Asynchronous Emission - More Next Notifications
Teardown - Complete Notification
Error Notification
Full Observer
Order
Cancellation - Unsubscribe
Types of Observable
Cold Observable
Hot Observable
Hot vs Cold - Comparison
Hot vs Cold
Creation Functions
of - How Creation Functions work
from
Creation Functions - of, from
fromEvent
timer
interval
Creation Functions - fromEvent, timer, interval
Note about ajax() creation function
forkJoin - Handle multiple HTTP calls
forkJoin - Error Scenario
combineLatest - Reacting to multiple input changes
Creation Functions - forkJoin, combineLatest
Pipeable Operators
Operator Stacking
Importing Operators
filter
map
tap
Learn More: tap
debounceTime
catchError
Flattening Operators
Flattening Operators - Static Example
Flattening Operators - Dynamic HTTP Request
Flattening Operators - Error Handling - First Solution
Flattening Operators - Error Handling - Second Solution
Flattening Operators - Concurrency - concatMap
Flattening Operators - switchMap
Flattening Operators - mergeMap
Flattening Operators - Side by Side Comparison
Pipeable Operators - Flattening Operators
Subjects
Multicasting
Subject vs Observable vs Observer
Subject in Action
BehaviorSubject - Concept
BehaviorSubject in Action
Course Summary
Congratulations & Further Steps

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores concepts such as Observables, Subscriptions, Observers, and Pipeable Operators, which are core components of RxJS
Utilizes hands-on coding sections to illustrate concepts, making it easier to comprehend
Provides a comprehensive overview of the essentials of RxJS, suitable for learners with little or no prior knowledge
Covers advanced topics, such as Flattening Operators and Subjects, to deepen understanding of RxJS
Taught by industry experts Jurek Wozniak, ensuring learners receive up-to-date knowledge and best practices
Emphasizes the practical applications of RxJS, equipping learners with skills directly applicable to real-world scenarios

Save this course

Save RxJS 7 and Observables: Introduction to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in RxJS 7 and Observables: Introduction with these activities:
Organize Course Resources
Create a central repository for all course materials, including notes, assignments, and quizzes.
Show steps
  • Create a dedicated folder or notebook for course materials.
  • Organize materials into logical sections or categories.
  • Review materials regularly to reinforce understanding.
Review RxJS Essentials
Reinforce your understanding of RxJS core concepts like Observables, Subscriptions, Observers, and Operators before diving into the course.
Browse courses on Observables
Show steps
  • Revisit the course syllabus and identify key concepts covered in the first few modules.
  • Review documentation or tutorials on RxJS Observables, Subscriptions, and Operators.
  • Complete practice exercises or code along with introductory RxJS examples.
Review Marble Diagrams
Review the concept of Marble Diagrams to develop a strong foundation for understanding Observables.
Show steps
  • Review the purpose and benefits of Marble Diagrams.
  • Practice creating Marble Diagrams for different types of Observable notifications.
  • Analyze and interpret Marble Diagrams to understand the behavior of Observables.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Explore RxJS Marble Diagrams
Develop a deeper understanding of Observable behavior by studying Marble Diagrams, a graphical representation of RxJS sequences.
Browse courses on Marble Diagrams
Show steps
  • Find online tutorials or resources that explain Marble Diagrams in RxJS.
  • Practice creating Marble Diagrams to represent different Observable scenarios.
  • Analyze Marble Diagrams to understand how Operators transform Observables.
Flattening Operators Exercises
Reinforce your understanding of flattening operators by solving practice exercises.
Browse courses on Data Transformation
Show steps
  • Identify different scenarios where flattening operators can be applied.
  • Practice using concatMap, switchMap, and mergeMap operators.
  • Debug code that involves flattening operators.
  • Compare and contrast the behavior of different flattening operators.
Develop an RxJS Code Example
Solidify your understanding by creating a practical code example that demonstrates RxJS principles.
Show steps
  • Choose a specific RxJS concept or scenario to focus on.
  • Design and implement a code example that showcases the concept.
  • Document your code with clear comments and explanations.
Explore Advanced RxJS Topics
Extend your knowledge of RxJS by exploring advanced topics through tutorials.
Browse courses on RxJS
Show steps
  • Identify areas where your RxJS understanding can be improved.
  • Search for and select high-quality tutorials on advanced RxJS topics.
  • Follow the tutorials thoroughly and implement the concepts in your own projects.

Career center

Learners who complete RxJS 7 and Observables: Introduction will develop knowledge and skills that may be useful to these careers:
Software Architect
Software Architects are responsible for designing and overseeing the construction of software systems. Observables and reactive programming are used in designing scalable and resilient architectures that can handle complex event-driven scenarios. This course provides insights into how to use RxJS to build software systems that can respond to changes and handle concurrency effectively. It covers advanced concepts such as error handling, concurrency, and performance optimization, which are essential for designing robust and reliable software systems.
Back-End Developer
Back End Developers are responsible for the development and maintenance of the server-side logic and data management of web applications. Observables and reactive programming are used in handling asynchronous events, processing data streams, and communicating with databases. This course provides a foundation for understanding these concepts, helping developers build scalable and efficient back-end systems. It covers the basics of RxJS, including creating and using observables, as well as how to use operators to transform and combine data.
Full-Stack Developer
Full Stack Developers are in charge of developing and maintaining both the front-end and back-end of web applications. Observables and reactive programming are used in handling user interactions, managing state, and communicating with APIs. This course provides a solid understanding of these concepts, helping developers build responsive and interactive applications. It covers the fundamentals of RxJS, including observables, subscriptions, and operators, and teaches how to use them to handle asynchronous events and data streams.
Front-End Developer
Front End Developers are responsible for the design and implementation of the user interface of websites and web applications. Observables and reactive programming are used in handling user interactions, managing state, and communicating with back-end services. This course provides a practical understanding of how to use RxJS to build responsive and engaging user interfaces. It teaches how to create and use observables, apply operators, and handle asynchronous events.
Data Scientist
Data Scientists are responsible for collecting, cleaning, and analyzing data in order to find patterns and trends. Observables and reactive programming are used in data collection, data streaming, and event processing. This course helps build a foundation for understanding the concepts and tools needed to succeed in this role. It teaches how to create and use Observables, define and apply operators, and consume data from multiple sources. This course is recommended for those who wish to pursue a career as a Data Scientist or for those who want to enhance their skills in data analytics.
Product Manager
Product Managers are responsible for managing the development and launch of new products. Observables and reactive programming are used in understanding user behavior, tracking product usage, and gathering feedback. This course provides a foundation for understanding how to use RxJS to collect and analyze data, and to make data-driven decisions. It covers the basics of RxJS, including creating and using observables, as well as how to use operators to transform and combine data.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. Observables and reactive programming are used in automating build, deployment, and monitoring processes. This course may be useful for DevOps Engineers who want to enhance their skills in event-driven automation and continuous delivery. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical DevOps tasks.
Cloud Architect
Cloud Architects are responsible for designing and managing cloud computing environments. Observables and reactive programming are used in monitoring cloud usage, optimizing performance, and handling cloud events. This course may be useful for Cloud Architects who want to enhance their skills in event-driven cloud management and real-time performance monitoring. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical cloud architecture tasks.
Quantitative Analyst
Quantitative Analysts are responsible for using mathematical and statistical models to analyze financial data. Observables and reactive programming are used in real-time data analysis, risk assessment, and portfolio optimization. This course may be useful for Quantitative Analysts who want to enhance their skills in event-driven data analysis and real-time risk management. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical quantitative analysis tasks.
Software Tester
Software Testers are responsible for testing software to identify and fix bugs. Observables and reactive programming are used in automated testing, performance testing, and exploratory testing. This course may be useful for Software Testers who want to enhance their skills in event-driven test automation and real-time performance testing. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical software testing tasks.
System Administrator
System Administrators are responsible for managing and maintaining computer systems. Observables and reactive programming are used in monitoring system performance, detecting anomalies, and handling system events. This course may be useful for System Administrators who want to enhance their skills in real-time system monitoring and event-driven system management. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical system administration tasks.
Data Analyst
Data Analysts are responsible for collecting, cleaning, and analyzing data in order to find patterns and trends. Observables and reactive programming are used in data collection, data streaming, and event processing. This course may be useful for Data Analysts who want to enhance their skills in data streaming and real-time data analysis. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical data analysis scenarios.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. Observables and reactive programming are used in monitoring database performance, detecting anomalies, and handling data changes. This course may be useful for Database Administrators who want to enhance their skills in real-time database monitoring and event-driven data management. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical database administration tasks.
UX Designer
UX Designers are responsible for designing user interfaces that are both functional and aesthetically pleasing. Observables and reactive programming are used in gathering user feedback, tracking user interactions, and testing user interfaces. This course may be useful for UX Designers who want to enhance their skills in real-time user feedback collection and event-driven user interface testing. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical UX design tasks.
Technical Writer
Technical Writers are responsible for creating and maintaining technical documentation. Observables and reactive programming are used in generating documentation from code, updating documentation in response to code changes, and handling documentation feedback. This course may be useful for Technical Writers who want to enhance their skills in automated documentation generation and event-driven documentation updates. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical technical writing tasks.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in RxJS 7 and Observables: Introduction.
Provides a comprehensive introduction to JavaScript. It covers the essential concepts, syntax, and patterns, and includes numerous examples and exercises.
Provides a comprehensive introduction to JavaScript. It covers the essential concepts, syntax, and patterns, and includes numerous examples and exercises.
Series provides a comprehensive introduction to JavaScript. It covers the essential concepts, syntax, and patterns, and includes numerous examples and exercises.
Provides a gentle introduction to functional programming concepts, including a chapter on reactive programming and RxJS.
Provides a collection of reusable JavaScript patterns, including a chapter on reactive programming and RxJS.
Provides a comprehensive overview of JavaScript, including a chapter on reactive programming and RxJS.
Provides a comprehensive introduction to Node.js. It covers the essential concepts, patterns, and techniques, and includes numerous examples and exercises.
Provides a concise introduction to the good parts of JavaScript. It covers the essential concepts, syntax, and patterns, and includes numerous examples and exercises.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to RxJS 7 and Observables: Introduction.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser