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

Класс Future

Класс Future используется для представления значения, которое будет получено позже, в результате выполнения асинхронной операции. Объект этого класса может находиться в одном из трех состояний: ожидание, успешное завершение или ошибка. Для получения результата используются методы then и catchError, а также ключевые слова async и await.

Синтаксис

Future<T> future = Future.value(T value); Future<T> future = Future.delayed(Duration duration, [T computation()]); Future<T> future = Future.error(Object error);

Пример

Давайте создадим объект Future с уже готовым значением и получим его через метод then:

void main() { Future<String> future = Future.value('abcde'); future.then((value) { print(value); }); }

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

"abcde"

Пример

Давайте создадим Future, который выполнится с задержкой, и дождемся его результата с помощью await:

Future<void> main() async { Future<int> future = Future.delayed( Duration(seconds: 1), () => 12345 ); int res = await future; print(res); }

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

12345

Пример

Давайте создадим Future с ошибкой и обработаем ее через метод catchError:

void main() { Future<int> future = Future.error('Error message'); future.catchError((error) { print('Caught: $error'); }); }

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

"Caught: Error message"

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

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