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.