Chr*_*ner 7 java rx-java rx-java2
假设我有一个带a String和a 的函数long并返回一个Single<String>.
Single<String> stringAddition(String someString, long value) {
return Single.just(someString + Long.toString(value));
}
Run Code Online (Sandbox Code Playgroud)
现在我有这个Observable......
Observable.interval(1, SECONDS)
.scan("", (cumulativeString, item) -> {
// Need to return the result of stringAddition(cummulativeString, item)
});
Run Code Online (Sandbox Code Playgroud)
我对如何做到这一点感到茫然.扫描需要我返回一个String,但是我想使用返回的方法Single<String>.对我来说,这似乎是我需要的东西,可以结合双方的行为scan和flatMap.有没有可以帮助我的RxJava2魔法?
您可以按如下方式实现。如果stringAddition可以返回,这可以稍微缩短Observable
Observable<String> scanned = Observable.interval(1, TimeUnit.SECONDS)
.scan(
Observable.just(""),
(cumulativeString, item) ->
cumulativeString
.flatMap(str -> stringAddition(str, item).toObservable())
)
.flatMap(it -> it);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1307 次 |
| 最近记录: |