收集数组列表中的所有可观察字符串
Collect all observable strings in array list
我有一个 map
包含 key/value 对。从这个 map
我通过流式传输到数据库 returns 结果 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);
}
您必须订阅 storeKeysInTheDb()
返回的 observable;在您订阅之前,没有任何反应,也没有字符串结果。
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();
}
当您订阅生成的可观察对象时,条目将被映射和存储,生成的元素将作为列表发出。
我有一个 map
包含 key/value 对。从这个 map
我通过流式传输到数据库 returns 结果 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);
}
您必须订阅 storeKeysInTheDb()
返回的 observable;在您订阅之前,没有任何反应,也没有字符串结果。
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();
}
当您订阅生成的可观察对象时,条目将被映射和存储,生成的元素将作为列表发出。