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

Функция wait

Функция wait ожидает завершения всех переданных Future и возвращает новый Future, который завершится списком результатов этих Future. Первым параметром функция принимает итерируемый набор Future, вторым - необязательный параметр cleanUp, который вызывается для каждого Future при возникновении ошибки. Если хотя бы один из Future завершится с ошибкой, то результирующий Future также завершится с ошибкой.

Синтаксис

Future.wait(futures, [cleanUp])

Пример

Давайте дождёмся завершения нескольких Future и получим список их результатов:

void main() { Future<int> f1 = Future.value(1); Future<int> f2 = Future.value(2); Future<int> f3 = Future.value(3); Future.wait([f1, f2, f3]).then((List<int> res) { print(res); }); }

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

[1, 2, 3]

Пример

Давайте дождёмся завершения Future, которые выполняются с задержкой:

void main() { Future<String> f1 = Future.delayed( Duration(seconds: 1), () => 'abcde' ); Future<String> f2 = Future.delayed( Duration(seconds: 2), () => '12345' ); Future.wait([f1, f2]).then((List<String> res) { print(res); }); }

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

["abcde", "12345"]

Пример

Давайте обработаем ошибку, если один из Future завершился неудачно:

void main() { Future<int> f1 = Future.value(1); Future<int> f2 = Future.error('error'); Future<int> f3 = Future.value(3); Future.wait([f1, f2, f3]).then((List<int> res) { print(res); }).catchError((Object error) { print('Caught: $error'); }); }

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

"Caught: error"

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

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