gpt4 book ai didi

java - RxJava 和 `Single` 可观察列表

转载 作者:行者123 更新时间:2023-12-02 03:34:27 24 4
gpt4 key购买 nike

我是RxJava新手,所以我仍然有很多疑问。

我正在创建这个:

    @Override
public Single<Result> saveUser(final User user) {

return Single.create(new Single.OnSubscribe<Result>() {
@Override
public void call(final SingleSubscriber<? super Result> singleSubscriber) {

if(user.isValid()){
save(user);
//Set result ok
singleSubscriber.onSuccess(result);
} else {
//This sets an error.
singleSubscriber.onError(error);
}
}
});
}

根据操作的成功与否,Single 会发出其数据,订阅者会收到数据。

现在的问题是,在某些时候我需要存储用户列表。像这样的东西:

public void saveUsers(List<User> listOfUsers){
for (User user : listOfUsers) {
saveUser(user);
}
}

如何创建 Single 以便订阅初始 Single

最佳答案

我宁愿从可观察列表中创建平面图。

public void saveUsers(List<User> listOfUsers){
Observable.from(listOfUsers).flatMap((User user)->{
if(user.isValid()){
save(user);
//Set result ok
return Observable.just(result);
}else
return Observable.error(new RuntimeException("..."));
}).retry(2);
}

如果您使 saveUsers 方法阻塞,请调用 Observable#toBlocking

关于java - RxJava 和 `Single` 可观察列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37611713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com