RxJS 9 is now in beta. It is a new generation of RxJS built on the web-platform Observable . The platform provides the foundation and common operations such as map and filter ; RxJS augments it with the broader operator catalog people rely on, including scan , retry , repeat , higher-order mapping, multicasting, and more. This is a significant change. It is also being built with migration in mind…
This is a bit of a hot-take, I suppose. And it definitely falls under the category of "silly micro optimizations" that people shouldn't trouble themselves with, but it's something I see a lot and I want to call it out: forEach , to me, is a code smell. "Has Ben lost his mind?" Maybe. "Has Ben gone downhill so far that this is sort of nonsense content he's producing?" Yes. Absolutely. In truth,…
Before you read this, you should probably checkout part 1 . The Subscriber: The Real Work Horse # I talked a bit about subscribers in my article about creating an observable from scratch . While Observable gets all of the glory in RxJS, because it's the main type people interact with, it's the subscriber that actually does all of the work. The observable itself is little more than a wrapper around…
I want to take some time to share everything I know about the pipeline operator proposal that is currently in stage 2, to the best of my ability. This will, of course, be a somewhat biased account — it's my article, haha — but I'll do my best to present both sides while presenting my case. Also, keep in mind, that as thorough as I'll try to be, I'm completely sure I'm missing things. If you spot…
What is an operator? Why do they exist? Observables are "sets". # The first thing to understand about operators is why they exist. They exist because observables, as a type, allow us to treat events (or values over time) as a sets. Not a set like a JavaScript Set , rather a set as in a mathematical set, or a collection of things (akin to the concepts set forth by Set Theory ). In more elementary…
This is a rehash of an old article I wrote in 2016, and a talk I've given more than a few times. I want to modernize the content a little, and hopefully simplify it. The goal is to help people understand what an observable is. Not just an RxJS observable, but any observable (yes, there's more than one), as a type. Observables Are Just Functions # To understand this, I want to place two…