async-функции возвращают Future; await ставит продолжение в event queue; microtasks приоритетнее events — UI не должен блокироваться синхронной работой.
Разбор
Future(() => ...) vs microtask.
unawaited для fire-and-forget с осторожностью.
Ошибки — try/catch или catchError.
Stream — последовательность async событий.
Пример
Future<void> load() async {
final data = await repo.fetch();
if (!mounted) return;
setState(() => items = data);
}
Итог
async/await поверх event loop; тяжёлое CPU — в isolate, не в sync участке UI.
Как устроен event loop и Future/async-await в Dart? · Sobeso