目录
1 blockingFirst
T |
blockingFirst() 返回此Flowable发出的第一个项,如果它没有发出任何项,则抛出NoSuchElementException。 |
T |
blockingFirst(T defaultItem) 返回此Flowable发出的第一个项,如果它不发出任何项,则返回默认值。 |
1.1 blockingFirst图解
1.2 blockingFirst测试用例
测试代码
@Test
public void doBlockingFirst() {
System.out.println("######doAny#####");
Integer result = Flowable.just(10, 2, 3, 4, 5).blockingFirst();
System.out.println(result);
}
测试结果
######doAny#####
10
1.3 blockingFirst分析说明
blockingFirst返回发射的第一个item
1.4 实用场景
后续完善
2 blockingForEach
void |
blockingForEach(Consumer<? super T> onNext) 以阻塞方式消耗上游Flowable并使用当前线程上的每个上游项调用给定的Consumer,直到上游终止。 |
2.1 blockingForEach测试用例
@Test
public void doBlockingForEach() {
System.out.println("######doBlockingForEach#####");
Flowable.just(10, 2, 3, 4, 5).blockingForEach(new Consumer<Integer>() {
@Override
public void accept(Integer result) throws Exception {
System.out.println("blocking result = " + result);
}
});
}
测试结果
######doBlockingForEach#####
blocking result = 10
blocking result = 2
blocking result = 3
blocking result = 4
blocking result = 5
2.2 blockingForEach说明
blockingForEach会使用指定的Consumer消费Flowable发出的每一个项目
2.4 实用场景
后续完善
3 blockingIterable
Iterable<T> |
blockingIterable() 将此Flowable转换为Iterable。 |
Iterable<T> |
blockingIterable(int bufferSize) 将此Flowable转换为Iterable,限制 |
3.1 blockingIterable图解
3.2 blockingIterable测试用例
@Test
public void blockingIterable() {
System.out.println("######blocksingIterable#####");
Iterable<Integer> iterable = Flowable.just(10, 9, 8, 7).blockingIterable();
for(Integer aIterable :iterable) {
System.out.println("value = " + aIterable);
}
}
测试结果
######blockingIterable#####
value = 10
value = 9
value = 8
value = 7
3.3 实用场景
后续完善
4 blockingLast
T |
blockingLast() 返回此Flowable发出的最后一项,如果此Flowable没有发出任何项,则抛出NoSuchElementException。 |