РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
81 of 723 menu

Тип Future

Тип Future<T> обозначает будущий результат типа T. Сейчас значения может ещё не быть: оно появится, когда асинхронная работа завершится. Завершённый результат читают через await внутри функции с пометкой async. У функции с такой пометкой тип результата сам становится Future. Если функция ничего полезного не возвращает, её тип - Future<void>. Ошибка завершения - отдельный исход, это не значение типа T.

Синтаксис

Future<int> name = Future.value(5); Future<String> name = Future(() => 'abcde');

Пример

Давайте создадим уже готовый будущий результат и дождёмся его:

void main() async { Future<int> res = Future.value(5); print(await res); }

Результат выполнения кода:

5

Пример

Давайте получим строку из функции с пометкой async. Её результат имеет тип Future<String>:

Future<String> load() { return Future.value('abcde'); } void main() async { print(await load()); }

Результат выполнения кода:

"abcde"

Пример

Давайте отложим вычисление до будущего и дождёмся суммы:

void main() async { Future<int> res = Future(() { return 2 + 3; }); print(await res); }

Результат выполнения кода:

5

Смотрите также

  • тип Stream,
    который выдаёт несколько событий со временем
  • тип FutureOr,
    который допускает и значение, и Future
  • класс Future,
    в котором собраны методы будущих результатов
  • ключевое слово await,
    которое ждёт завершения Future
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить