RxJS provides one way to handle asynchronous and event-based data. It turns values from user input, web services, files, databases, notifications, and collections into observable streams: ordered events over time that you read by subscribing. section 8.4
Transforming a stream
An observable can be filtered and mapped before subscription. The sequence 1, 2, 3, 4, 5 becomes 1, 9, 25 by keeping odd values and squaring them. section 8.4
Rx.Observable.of(1,2,3,4,5)
.filter(x => x%2 !== 0)
.map(x => x * x) #1
.subscribe(x => console.log(`Next: ${x}`));
//-> Next: 1
Next: 9
Next: 25
See a compact RxJS pipeline that filters values, maps them to squares, and prints each emitted result. section 8.4
Handling browser input
RxJS can subscribe to a student SSN field’s change events, extract the entered value, clean it, check its length, and report whether it is valid. section 8.4

