Метод doWhile
Метод doWhile выполняет асинхронную
функцию, переданную первым параметром, и
повторяет её вызов до тех пор, пока эта
функция возвращает true. В первый
параметр мы передаем функцию, возвращающую
Future с булевым значением. Второй
параметр является необязательным и задает
действие, которое выполняется после каждой
итерации. Метод возвращает Future,
который завершается, когда функция вернет
false.
Синтаксис
Future.doWhile(action)
Пример
Давайте выполним цикл, который увеличивает
счетчик, пока он не достигнет 3:
void main()
{
int counter = 0;
Future.doWhile(() async {
counter++;
print(counter);
return counter < 3;
}).then((_) {
print('Done');
});
}
Результат выполнения кода:
1
2
3
"Done"
Пример
Давайте используем метод doWhile для
последовательного обхода списка:
void main()
{
List<String> items = ['a', 'b', 'c', 'd', 'e'];
int index = 0;
Future.doWhile(() async {
if (index >= items.length) {
return false;
}
print(items[index]);
index++;
return true;
});
}
Результат выполнения кода:
"a"
"b"
"c"
"d"
"e"
Смотрите также
-
класс
Future,
который представляет асинхронный результат -
метод
forEach,
который выполняет функцию для каждого элемента -
метод
then,
который выполняет код после завершения Future -
метод
whenComplete,
который выполняет код после завершения Future