9Asynchronous Functions, Iterators, and Generators

In this chapter you'll learn about ES2018's async functions and the await operator, which provide syntax for writing asynchronous code using the same familiar flow control structures you use when writing synchronous code ( for loops, if statements, try/ catch/ finally, calling functions and waiting for their results, etc.). You'll also learn about async iterators, async generators, and the for-await-of statement.

Because async functions build on promises, if you haven't already read Chapter 8, you'll want to do that now before moving on to this chapter.

ASYNC FUNCTIONS

In some sense, async/ await syntax is “just” syntactic sugar for creating and consuming promises, and yet it completely transforms how you write your asynchronous code, letting you write the logical flow rather than writing only the synchronous flow and using callbacks for the asynchronous parts. async/ await fundamentally changes, and simplifies, writing asynchronous code.

In a non- async function, you're writing a series of operations that the JavaScript engine will carry out, in order, without allowing anything else to happen while it's doing so (see the “Single Thread Per ...

Get JavaScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.