Spec-Zone.ru › Dart 1

dart:async

Метод distinct

Stream<T> distinct([bool equals(T previous, T next) ])

Пропускает события данных, если они равны предыдущему событию данных.

Возвращаемый поток предоставляет те же события, что и этот поток, за исключением того, что он никогда не предоставляет два последовательных события данных, которые равны. То есть ошибки передаются в возвращаемый поток, а события данных передаются, если они отличаются от самого последнего отправленного события данных.

Равенство определяется предоставленным equals методом. Если он опущен, используется оператор '==' для последнего предоставленного элемента данных.

Если equals выбрасывает исключение, событие данных заменяется событием ошибки, содержащим сгенерированное исключение. Поведение эквивалентно поведению исходного потока, который отправляет событие ошибки.

Возвращаемый поток является потоком с широковещательной рассылкой, если таковым является исходный поток. Если за потоком с широковещательной рассылкой подключается более одного слушателя, каждый из них будет индивидуально выполнять проверку equals.

Исходный код

Stream<T> distinct([bool equals(T previous, T next)]) {
  return new _DistinctStream<T>(this, equals);
}

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-async/Stream/distinct.html

Spec-Zone.ru

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