JavaScript is asynchronous by nature and that can lead to uneasy code patterns, but we’ve come a long way since Callback Hell. From Async.js to promises to generators to async/await, and a wink at Functional Reactive Programming (FRP), Christophe makes a strong case for clean, readable async JS code.