skipWhile 方法

Stream<T> skipWhile(
  1. bool test(
    1. T element
    )
)

在满足 test 条件时跳过从该流中接收数据事件。

返回一个与该流具有相同事件的流,但数据事件不会发出,直到数据事件使 test 返回非 true 值或 test 调用抛出异常。如果调用抛出异常,则错误会作为错误事件而不是数据事件在返回的流上发出。否则,使 test 返回非真值的那个事件会作为第一个数据事件发出。

返回的流不修改错误和完成事件。

如果此流是广播流,则返回的流也是广播流。对于广播流,事件仅从返回的流被监听的时间开始测试。

示例

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);
}