Async JavaScript at Netflix with Jafar Husain

What's does a mouse drag event have in common with an Array of numbers? The answer to this question may surprise you: they are both collections. This key insight holds the key to dramatically simplifying asynchronous programming in JavaScript. In this talk you will learn how you can use the familiar JavaScript Array methods to create surprisingly expressive asynchronous programs. Using just a few functions, you will learn how to do the following: Declaratively build complex events out of simple events (ex. drag n' drop) Coordinate and sequence multiple Ajax requests Reactively update UI's in response to data changes Eliminate memory leaks caused by neglecting to unsubscribe from events Gracefully propagate and handle asynchronous exception In this talk we'll be exploring the Reactive Extensions (Rx) library (, which allows us to treat events as collections. You'll learn about how Netflix uses Rx on the client and the server, allowing us to build end-to-end reactive systems. We'll also contrast Rx with Promises, another popular approach to building asynchronous programs in JavaScript.

Jafar Husain

Jafar Husain is Netflix's Cross-UI Team Technical Lead. He specializes in building application servers and user interfaces using functional reactive programming. He's also an active member of TC39, the standards body responsible for evolving the JavaScript language. 

A highly-rated speaker, he has delivered talks about reactive programming at HTML Dev Conf, QCon, Code Mesh, YOW! and has given multiple Channel 9 interviews on the subject. He has also authored interactive training software to help developers learn about functional reactive programming. @jhusain