New Book: Asynchronous JavaScript with Promises, Generators and async/await

es-2015-16-17-promises-generators-and-async-await-2-1000.jpgThe JavaScript language is changing, and among the changes are three new features which will revolutionize the way we write asynchronous code in JavaScript. The problem with the old callback-oriented asynchronous coding practice is the Callback Hell resulting from stacking callbacks within callbacks within callbacks. Between Promises, Generators and the proposed async/await feature, JavaScript programmers can largely free themselves from Callback Hell, and write clean asynchronous code that's easier to write, easier to understand, easier to maintain, and more robust.

That's a big promise - one that hinges on the fact that these three features:

  • Flatten asynchronous code, eliminating the need for asynchronous callbacks contained within other asynchronous callbacks
  • Automatically capturing and propagating thrown exceptions along the correct chain of execution
  • Make asynchronous code look like synchronous code -- including asynchronous code in loop bodies

A new book - Asynchronous Node.js/JavaScript with ES-2015/2016 Promises, Generators and Async/Await - available through your available breed of Amazon-dot-com - focuses on how Promises, Generators and async/await functions can hugely improve our asynchronous JavaScript code.

The book has three major sections:

  1. Setting up required tools like Babel which handles transpiling advanced JavaScript so it can run on older JavaScript engines
  2. Implementation of several common code structures using different asynchronous JavaScript frameworks: the async library, Promises, Generators (with the co library), and async/await functions
  3. In-depth studies of using Generators with the co library in several useful/working programs

The table of contents is:

  1. Asynchronous flows in single-threaded JavaScript

    1. Asynchronous coding problems
    2. Brief overview of other ECMAScript-2015/2016 features
  2. Setting up Promises, Generators and more in Node.js and Browsers
  3. The async module and its many functions
  4. Promises as the basis of taming asynchronous JavaScript
  5. Generator functions
  6. Async/Await is the asynchronous programming feature we're all awaiting
  7. Asynchronous coding in the browser
    1. Synchronous execution of two AJAX calls
  8. In Depth: Asynchronous route handlers in Express
  9. In Depth: globfs makeover
  10. In Depth: Export a MySQL database query as CSV
  11. In Depth: Rendering Markdown to HTML through an EJS template
  12. In Depth: Converting code to the modern paradigm