我有map
包含键/值对。从这个map
我通过流式传输将它们存储到一个返回结果Observable<String>
的数据库中。
当我尝试在没有阻止的情况下到达此字符串并将其放在列表中时,我的问题出现了。
它总是空的。这是我的实施:
public Observable<List<String>> uploadKeys(Map<String, String> entries) {
final List<String> collection = new ArrayList<>();
entries.entrySet().stream()
.forEach(entry -> storeKeysInTheDb(entry.getKey(), entry.getValue()).map(element -> element.isEmpty() ? "" : collection.add(element)));
return Observable.just(collection);
}
答案 0 :(得分:1)
您必须订阅storeKeysInTheDb()
返回的观察者;直到你订阅,没有任何反应,没有字符串结果。
public Observable<List<String>> uploadKeys(Map<String,String> entries) {
return Observable.fromIterable( entries.entrySet )
.flatMap( entry -> storeKeysInTheDb( entry.getKey(), entry.getValue() )
.filter(element -> !element.isEmpty())
.toList();
}
当您订阅生成的observable时,将映射和存储条目,并将结果元素作为列表发出。