Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从while循环创建可流动的_Java_Android_Rx Java2_Repository Pattern - Fatal编程技术网

Java 从while循环创建可流动的

Java 从while循环创建可流动的,java,android,rx-java2,repository-pattern,Java,Android,Rx Java2,Repository Pattern,我对RxJava非常陌生,需要创建包含多个数据源的存储库。这对我来说很复杂,因为有几个较小的子任务,我不知道如何用RxJava实现 首先,我有自己编写的dao,它处理InputStream,并提供指定范围内的项。目前它只是在列表中收集数据,但我想使用flowable逐个提供项目;目前它拥有可能。还有一些错误需要传输到更高级别(数据源)。例如EndOfFile,通知数据源数据已完全缓存 Dao.class: List<Item> loadRange(int start, int num

我对RxJava非常陌生,需要创建包含多个数据源的存储库。这对我来说很复杂,因为有几个较小的子任务,我不知道如何用RxJava实现

首先,我有自己编写的dao,它处理InputStream,并提供指定范围内的项。目前它只是在列表中收集数据,但我想使用flowable逐个提供项目;目前它拥有
可能
。还有一些错误需要传输到更高级别(数据源)。例如EndOfFile,通知数据源数据已完全缓存

Dao.class

List<Item> loadRange(int start, int number) throws ... {
    ...
    while(...) {
        ...
        //TODO contribute item to flowable
        resultList.add(new Item(...)) 

    }
    return resultList;
}
List loadRange(int start,int number)抛出。。。{
...
而(…){
...
//TODO将项目贡献给flowable
结果列表.添加(新项(…)
}
返回结果列表;
}
Maybe
刚刚创建的方法
Maybe.fromCallable()


请帮帮我

类似的东西应该适用于此:

Flowable<Item> loadRange(int start, int number) {
        return Flowable.create(emitter -> {
            try {
                while (...){
                    emitter.onNext(new Item());
                }
                emitter.onComplete();
            } catch (IOException e) {
                emitter.onError(e);
            }
        }, BackpressureStrategy.BUFFER);
    }
Flowable<Item> loadRange(int start, int number) {
        return Flowable.create(new FlowableOnSubscribe<Item>() {
            @Override public void subscribe(FlowableEmitter<Item> emitter) {
                try {
                    while (...){
                        emitter.onNext(new Item());
                    }
                    emitter.onComplete();
                } catch (IOException e) {
                    emitter.onError(e);
                }
            }
        }, BackpressureStrategy.BUFFER);
    }