使用Observable Rx java准备地图
这里是我的示例代码,它从couchbase服务器返回使用Observable Rx java准备地图,java,rx-java,couchbase,couchbase-java-api,Java,Rx Java,Couchbase,Couchbase Java Api,这里是我的示例代码,它从couchbase服务器返回JsonDocument列表 Cluster cluster = CouchbaseCluster.create(); Bucket bucket = cluster.openBucket(); List<JsonDocument> foundDocs = Observable .just("key1", "key2", "key3", "key4", "key5") .flatMap(new Func1<S
JsonDocument
列表
Cluster cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket();
List<JsonDocument> foundDocs = Observable
.just("key1", "key2", "key3", "key4", "key5")
.flatMap(new Func1<String, Observable<JsonDocument>>() {
@Override
public Observable<JsonDocument> call(String id) {
return bucket.async().get(id);
}
})
.toList()
.toBlocking()
.single();
Cluster Cluster=CouchbaseCluster.create();
Bucket=cluster.openBucket();
列表foundDocs=可观察
.just(“键1”、“键2”、“键3”、“键4”、“键5”)
.flatMap(新函数1(){
@凌驾
公共可观察调用(字符串id){
返回bucket.async().get(id);
}
})
托利斯先生()
.toBlocking()
.single();
我想返回Map
而不是List
。我的返回类型是Map
。
我尝试了
toMap
方法,但对我无效。您在评论中正确地提到toMap
需要一个函数作为其参数。此函数将用于“提取”(或可能是“构造”)键,在该键下,每个值都将输入地图
因此,在您的情况下,您需要一个函数
,该函数以JsonDocument
作为输入,并以某种方式返回一个字符串
,您稍后将使用该字符串在映射中查找JsonDocument
。String
将是什么,只有您才能回答-可能在JsonDocument
中有一些ID?请提供您尝试的代码和得到的结果。方法toMap
所需函数作为参数,我不知道如何编写。将key和flatMap结果结合起来是您的问题吗?然后检查这个-