RxJS, the Future of Async Programming

By Ali Abiba

Elevator Pitch

Asynchronous programming is a headache for new developers. From callback hell to promise prison. Its easy to get discouraged.

However, all hope is not lost. RxJS is here to give us a lean and functional way to develop. From observables to pipes, this talk guides the way to async nirvana.

Description

Web Development is evolving.

The demand for reactive features in applications is growing rapidly. The issue is, many are stuck in the traditional paradigms of development, and web technologies are playing catch up.

Vanilla Javascript is not equipped to provide graceful solutions to asynchronous programming. Callbacks are a potential solution, but as many know, this leads developers down the dark road to callback hell.

Promises are another component provided by Vanilla Javascript for async solutions. But promises are clunky and operating on the data requires dozens of lines of unnecessary and unreadable code.

ReactiveX provides a way out.

The ReactiveX is a multi-language project, that provides a functional approach to reactive programming. The JavaScript version, RxJS, is quickly becoming the defacto way to handle asynchronous events and streams in the web.

From Observables to Subjects, Multicasting to Error handling, it can be tricky to navigate. I’m aiming to introduce RxJS and reactive programming while helping the audience decide if it’s the best approach to their challenges.

Notes

There isnt much required to know before coming to the talk. It helps if the audience member has had some experience with async development, but it’s not required. However, a beginner to intermediate knowledge of JS will be needed to understand the concepts.

This talk is especially useful to people that work or are planning to work in Angular. RxJS comes baked into Angulars httpclient, and knowing how to properly utilize it is key. But, anyone developing in Javascript will find the topics helpful when they encounter async scenarios.

There are two main parts to the talk.

The first is a google presentation to introduce the library and its fundamentals. https://docs.google.com/presentation/d/1YH991JOippo_20V2M4JFVPf2EM4LQ9falwd0MQFryIY/edit?usp=sharing

The second part is a live coding example to help solidify the concepts, and bring it from an abstract topic, to something real. https://codepen.io/alibaba97/pen/ZmZBbG