take操作符
take 操作符从流中提取元素
take 系列操作符用来从当前流中提取元素。
提取的方式有
-
take(long n),take(Duration timespan)和 takeMillis(long timespan):按照指定的数量或时间间隔来提取。
// 输出的是数字 1 到 10 Flux.range(1, 1000).take(10).subscribe(System.out::println);
-
takeLast(long n):提取流中的最后 N 个元素。
// 输出的是数字 991 到 1000 Flux.range(1, 1000).takeLast(10).subscribe(System.out::println);
-
takeUntil(Predicate<? super T> predicate):提取元素直到 Predicate 返回 true。
// 输出的是数字 1 到 10 // 使得 Predicate 返回 true 的元素也是包含在内的。 Flux.range(1, 1000).takeUntil(i -> i == 10).subscribe(System.out::println);
-
takeWhile(Predicate<? super T> continuePredicate): 当 Predicate 返回 true 时才进行提取。
// 输出的是数字 1 到 9 Flux.range(1, 1000).takeWhile(i -> i < 10).subscribe(System.out::println);
-
takeUntilOther(Publisher<?> other):提取元素直到另外一个流开始产生元素。