首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Observable.Generate in RxJava?

Observable.Generate in RxJava?
EN

Stack Overflow用户
提问于 2016-06-07 15:44:50
回答 1查看 1.3K关注 0票数 2

.NET反应扩展有一种使用共递归生成序列的简洁方法,称为Observable.Generate

在RxJava中是否存在允许通过共递归生成数据的类似方法?如果没有,能否在现有方法的基础上实现?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-07 16:18:29

这不是完全匹配的,但是我们有SyncOnSubscribe (和AsyncOnSubscriber)可以生成值,例如:

代码语言:javascript
复制
@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();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37683832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档