Метод skipWhile
-
bool test(
- T элемент
Пропускает события данных из этого потока, пока они соответствуют test.
Возвращает поток, который излучает те же события, что и этот поток, за исключением того, что события данных не излучаются, пока событие данных не не пройдет test. Тест считается не пройденным, когда он вызывается с событием данных, если он возвращает значение, отличное от true, или если вызов test вызывает исключение. Если вызов вызывает исключение, ошибка излучается как событие ошибки в возвращаемом потоке вместо события данных, в противном случае событие, которое заставило test вернуть значение, отличное от true, излучается как первое событие данных.
События ошибок и завершения предоставляются возвращаемым потоком без изменений.
Возвращаемый поток является потоком вещания, если этот поток является таковым. Для потока вещания события проверяются только с момента подписки на возвращаемый поток.
Пример:
final stream = Stream<int>.periodic(const Duration(seconds: 1), (i) => i)
.take(10)
.skipWhile((x) => x < 5);
stream.forEach(print); // Outputs events: 5, ..., 9. Реализация
Stream<T> skipWhile(bool test(T element)) {
return new _SkipWhileStream<T>(this, test);
}
© 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/Stream/skipWhile.html