0Pricing
Dart Academy · Урок

Создание и ожидание Future

Создание и использование значений Future

«Создание и ожидание Future» — бесплатный урок Dart Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.

Обещание будущего значения

Future представляет значение, которое ещё не готово, но появится позже — словно квитанция, которую можно предъявить после выполнения заказа.

Future определённого типа

Тип Future всегда определяется тем, что он предоставит. Future<int> обещает значение типа int после завершения асинхронной работы.

Future<int> fetchScore() async {
  return 42;
}

Пометка функции как async

Добавьте ключевое слово async, и функция автоматически начнёт возвращать Future. Её возвращаемое значение станет значением после завершения Future.

Future<String> greet() async {
  return "hi";
}

Ожидание результата

Внутри асинхронной функции await приостанавливает её до завершения Future, а затем предоставляет обычное распакованное значение.

final score = await fetchScore();
print(score); // 42

await не блокирует выполнение

Пока одна функция ожидает, цикл событий продолжает выполнять другую работу. await приостанавливает только эту функцию, а не всю программу.

Имитация задержки

Используйте Future.delayed, чтобы подождать заданное время перед созданием значения. Это удобно для имитации медленного сетевого запроса.

await Future.delayed(Duration(seconds: 1));
print("one second later");

Мгновенный Future

Future.value оборачивает готовое значение в Future. Это полезно, когда API ожидает Future, а ответ у Вас уже есть.

Future<int> ready = Future.value(7);

Цепочки с then

До появления async/await использовался then, чтобы выполнить обратный вызов после разрешения Future. Он по-прежнему удобен для коротких цепочек.

fetchScore().then((s) => print(s));

await делает код понятнее

По сравнению с вложенными обратными вызовами then, await позволяет читать асинхронный код сверху вниз, как обычные синхронные шаги.

Возврат из async-функции

Всё, что Вы возвращаете из функции async, становится значением Future. Если ничего не вернуть, получится Future<void>.

Ожидание только в async-функции

Использовать await можно только внутри функции, помеченной как async. Вне такой функции работайте с Future через then.

Быстрая проверка

Быстрая проверка поведения await.

Итоги: Future

Теперь Вы умеете создавать Future с помощью async, передавать значения через return и распаковывать их с помощью await. Асинхронный код читается почти так же легко, как синхронный. 🚀

Часто задаваемые вопросы

Урок «Создание и ожидание Future» бесплатный?

Да — полный текст урока «Создание и ожидание Future» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.

Чему я научусь в уроке «Создание и ожидание Future»?

Создание и использование значений Future Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Dart Academy?

Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Создание и ожидание Future»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Dart Academy?

Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Цикл событий и микрозадачи
  2. Создание и ожидание Future
  3. Обработка ошибок в асинхронном коде
  4. Future.wait и параллельная работа
← Назад к Dart Academy