Rx java 在RxJava中生成?
.NET反应式扩展有一种使用corecursion生成序列的简洁方法,该方法称为Rx java 在RxJava中生成?,rx-java,corecursion,Rx Java,Corecursion,.NET反应式扩展有一种使用corecursion生成序列的简洁方法,该方法称为 RxJava中是否存在允许通过corecursion生成数据的类比方法?如果没有,它是否可以基于现有方法实现?这不是一个完全匹配的方法,但我们有可以生成值的SyncOnSubscribe(和AsyncOnSubscriber)例如: @Test public void testRange() { final int start = 1; final int count = 4000; OnS
RxJava中是否存在允许通过corecursion生成数据的类比方法?如果没有,它是否可以基于现有方法实现?这不是一个完全匹配的方法,但我们有可以生成值的
SyncOnSubscribe
(和AsyncOnSubscriber
)例如:
@Test
public void testRange() {
final int start = 1;
final int count = 4000;
OnSubscribe<Integer> os = SyncOnSubscribe.createStateful(new Func0<Integer>(){
@Override
public Integer call() {
return start;
}},
new Func2<Integer, Observer<? super Integer>, Integer>() {
@Override
public Integer call(Integer state, Observer<? super Integer> subscriber) {
subscriber.onNext(state);
if (state == count) {
subscriber.onCompleted();
}
return state + 1;
}
});
@SuppressWarnings("unchecked")
Observer<Object> o = mock(Observer.class);
InOrder inOrder = inOrder(o);
Observable.create(os).subscribe(o);
verify(o, never()).onError(any(TestException.class));
inOrder.verify(o, times(count)).onNext(any(Integer.class));
inOrder.verify(o).onCompleted();
inOrder.verifyNoMoreInteractions();
}
@测试
公共void testRange(){
最终整数开始=1;
最终整数计数=4000;
OnSubscribe os=SyncOnSubscribe.createStateful(新的Func0(){
@凌驾
公共整数调用(){
返回启动;
}},
新职能2