[英]RxJava and list of `Single` observable
I'm new in RxJava
so I still have many doubts. 我是
RxJava
所以我仍然有很多疑问。
I'm creating this: 我正在创建这个:
@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);
}
}
});
}
Depending of the success of the operation, the Single
emits it's data and who is subscribed receives the data. 根据操作的成功程度,
Single
会发出其数据,被订阅的人会接收该数据。
The problem now is that at some point I need to store a list of users. 现在的问题是,在某个时候我需要存储用户列表。 Something like:
就像是:
public void saveUsers(List<User> listOfUsers){
for (User user : listOfUsers) {
saveUser(user);
}
}
How can I create an Single
so I can be subscribed to the initial Single
我如何创建一个
Single
以便可以订阅初始的Single
I would rather create flatmap out of observable list. 我宁愿从可见列表中创建平面图。
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);
}
If you make your saveUsers
method blocking, call Observable#toBlocking
. 如果您使
saveUsers
方法saveUsers
阻塞状态,请调用Observable#toBlocking
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.