Spec-Zone.ru › Dart 2

dart:async

forEach<T> статический метод

Future forEach<T>(
  1. Iterable<T> elements,
  2. FutureOr action(
    1. T element
    )
)

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

action может быть синхронным или асинхронным.

Вызывает action для каждого элемента в elements по порядку. Если вызов action возвращает Future<T>, итерация ожидает завершения future, прежде чем перейти к следующему элементу.

Возвращает Future, который завершается с null после обработки всех элементов.

Возвращаемые значения, не являющиеся Future, а также значения завершения возвращённых Future отбрасываются.

Любая ошибка из action, синхронная или асинхронная, остановит итерацию и будет передана в возвращённом Future.

Реализация

static Future forEach<T>(Iterable<T> elements, FutureOr action(T element)) {
  var iterator = elements.iterator;
  return doWhile(() {
    if (!iterator.moveNext()) return false;
    var result = action(iterator.current);
    if (result is Future) return result.then(_kTrue);
    return true;
  });
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-async/Future/forEach.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API