Введение в асинхронность в Dart
Обычный вызов функции выполняется до конца: пока считается сумма или собирается строка, следующая строка программы ждет. Когда шаг может занять время или зависит от внешнего ответа, удобнее запланировать продолжение позже, не крутя пустой цикл в ожидании.
В Dart для такого результата служит Future -
обещание значения, которое появится, когда работа
закончится. Функция с модификатором async
сама возвращает Future, а оператор
await приостанавливает текущую
async-функцию, пока нужный Future
не завершится.
В этом разделе все шаги идут через одну очередь
событий: переключения потоков мы не разбираем.
Пауза задается через Future.delayed,
несколько независимых задач можно дождаться через
Future.wait. Так код остается линейным,
хотя внутри выполнение то идет, то откладывается.
Типы Future и Duration доступны
в обычной программе без отдельного импорта.
Дальше мы по шагам пройдем от объявления
Future до обработки ошибок и практики
на коротких примерах с print.