Как работают async/await Node.js (вступление)
25.12.2015async/await созданы для того чтобы избежать ада callback-функций в коде. Данная идея была позаимствована из C# (который также содержит операторы async/await о похожим назначением). Смысл данного оператора заключается в следующем: он позволяет создать функцию которая будет ожадать выполнения в каждой асинхронной операции прежде чем приступить к следующей инструкции (или оператору).
Смысл этих операторов продемонстрирован в примере:
Без использования операторов async и await данный пример может выглядеть следующим образом:
Выполнение функции getResultAndContinue (в первом примере) не блокирует EventLoop, но выполнение приостанавливается в await операторе. В это это время EventLoop может выполнять другие операции не связанные с приостановленной операцией. Это позволяет создавать код, который обрабатывает поток данных также эффективно, как и в случае callback-функций.
Таким образом использование async/await дает следующие преимущества:
- возможность убрать callback-hell из кода
- полностью неблокирующий EventLoop подход
- возможно использовать в TypeScript
Комментарии