RxJS
Reactive programming, Observables, timeless patterns and new implementations
What is Reactive Programming?
"Reactive programming is programming with asynchronous data streams."
-- The introduction to Reactive Programming you've been missing by Andre Staltz
Demo 1
What is RxJS?
What is RxJS?
...is a set of libraries to compose asynchronous and event-based programs using observable collections and Array#extras style composition in JavaScript
What is RxJS?
- reactive programming
- treating events as collections
- manipulating sets of events with operators
"RxJS is LoDash or Underscore for async."
RxJS
- latest version 5.0.3
- aligned API with ES7 Observable proposal
- open source, Microsoft, Netflix, Google
Promise vs Observable
Promises and Observables are built to solve problems around async
(to avoid "callback hell")
Async in web apps
- DOM events
- Animations
- AJAX
- WebSockets
- Server Sent Events
Observables are cancellable
// on page init
const subscription = ApiService.getSomeData()
.subscribe(
function (x) {
console.log('Success: %s', x);
},
function (err) {
console.log('Error: %s', err);
},
function () {
console.log('Completed!');
}
)
// on page leave
subscription.unsubscribe()
Where we use RxJS?
- Angular - HttpService, FormControls, url params
- UI - Typeahead, Http error handling/alerts
- ngrx - redux-like state management
- node - error handling, sms/slack notifications, analytics, etc.
- "every time a customer successfully updates their vehicle, send the newly updated vehicle to segment"
- "every time an API call fails, log it to sentry"
Resources
Damir Šehić
damir @jsgzb
@DyslexicDcuk
DyslexicDcuk
RxJS
By Damir Šehić
RxJS
- 961