Notes on “Learn RxJS”

As part of learning web application development platform Angular, I’m trying to get a grip on a software library called RxJS. It is a part of Angular framework for purposes related to asynchronous data processing but I don’t understand it enough to recognize when it might be the right tool for a job. RxJS official documentation was seriously lacking in beginner-approachable information. But if it is important enough to be a part of Angular, I assumed it would have its fans online. I looked around to see if anyone has published a tutorial and the first example I found was “Learn RxJS” by Brian Troncone.

This site has a page titled “RxJS Primer” which is a far more effective introduction than anything I found on RxJS official documentation. It is followed by “Get started transforming streams with map, pluck, and mapTo” which walks through a two parallel examples: one using standard JavaScript Array’s map method and another using RxJS counterpart map method. This was a good look at how RxJS allows developer to think about asynchronous event processing in a way similar to processing elements in an array. I’m not quite that familiar with, though, so I was sort of learning about both at the same time. Which, to the author’s credit, they had accounted for.

After reading those pages, I clicked around the site hoping for more content of similar quality. Unfortunately, I think those two pages were the free trial teaser for the author’s paid RxJS instruction courses. I don’t begrudge the author for making a living from their knowledge, but I’m yet not at a point where it makes sense for me to spend $129 on it.

If I’m willing to learn on my own from small snippets of sample code, there is a section on the site for that. “Recipes” is a list of small JavaScript webapps that focus on showing how we can use RxJS to accomplish various tasks. Everything from an input textbox autocomplete type-ahead (which is what “Tour of Heroes” used RxJS for) to a minimalist implementation of Tetris. Majority of these recipes were implemented with absolutely minimal amount of HTML & CSS and a few lines of very terse JavaScript full of RxJS. I appreciate the minimalism because that helps me focus on the core, but reading RxJS is like reading a foreign language I barely understand. In an ideal world, abstract code would be accompanied by plain-English code comments, but comments are conspicuously absent from these examples.

Clicking author Brian Troncone’s Twitter handle @BTroncone, the most recent (non-pinned) retweet was about something new in Angular called Signals. Following links, I saw “Angular Reactivity with Signals“, a design/planning/thinking document that I only partially understood. What is clear to me is that some of the people behind Angular are pushing to increase this “reactivity” concept beyond using RxJS in Angular, so it must be bigger than just a single JavaScript library.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s