Метод forEach< T>
Выполняет действие для каждого элемента итерируемого объекта поочередно.
action может быть синхронным или асинхронным.
Вызывает action с каждым элементом в elements в порядке. Если вызов action возвращает Future<T>, итерация ожидает завершения будущего перед продолжением с последующим элементом.
Возвращает Future, который завершается значением null при обработке всех элементов.
Значения, не являющиеся Future, и значения завершения возвращенных Futures игнорируются.
Любая ошибка из 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.18.5/dart-async/Future/forEach.html