01. Async Functions
Асинхронные функции появились в результате комбинации возможностей Promise и генераторов. Кто-то заметил, что можно использовать генераторы для того, что бы приостановить выполнение программы до тех пор, пока Promise не будет установлен, а потом вернуть значение Promise в место его вызова и продолжить:
Так можно выполнять асинхронную функцию, последовательно переходя от Promise к Promise, при этом выполнение каждого Promise происходит асинхронно:
Основное преимущество асинхронных функций в том, что они позволяют описывать асинхронные операции так, что они выглядят как синхронные. Формирование цепочки Promise заменяется на последовательность вызовов асинхронных функций и исполнение кода выглядит так, как будто он выполняется синхронно.
Преимущества асинхронных функций:
Concise and clean code (более простая ментальная модель).
Error handling (обработка ошибки может происходить там же, где и вызов асинхронной функции).
Conditionals
Легче обрабатывать промежуточные значения (их можно передать в цепочке асинхронных вызовов).
Error stacks
Debugging
С Async/await можно использовать циклы, т.е. подходит для serial-операций.
Last updated
Was this helpful?