Свойство last
Свойство last возвращает Future,
которое завершается последним элементом потока
Stream.
Если поток пуст, Future завершается ошибкой
StateError. Свойство не принимает параметров.
После вызова last поток начинает прослушиваться
и по завершении возвращает последнее значение.
Синтаксис
Stream<T>.last
Пример
Давайте создадим поток из списка чисел и получим его последний элемент:
void main() async
{
Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]);
int res = await stream.last;
print(res);
}
Результат выполнения кода:
5
Пример
Давайте создадим поток из списка строк и получим его последний элемент:
void main() async
{
Stream<String> stream = Stream.fromIterable(['a', 'b', 'c', 'd', 'e']);
String res = await stream.last;
print(res);
}
Результат выполнения кода:
"e"
Пример
Давайте создадим пустой поток и попробуем получить его последний элемент:
void main() async
{
Stream<int> stream = Stream.empty();
try
{
int res = await stream.last;
print(res);
}
catch (e)
{
print('Error: $e');
}
}
Результат выполнения кода:
"Error: Bad state: No element"