0
我是RxJava的新手,我有一个当前使用Spring异步的项目,试图将它重构为RxJava的方式,不知道什么是优雅的方式。重构Spring异步到RxJava的方式
我们有一个类UserService,然后执行繁重的工作
@Async
public class UserService {
public Future<User> fetchUsers(String space, String username) {
// some other thing
...
// call network APIs to fetch users for a space
return new AsyncResult<>(clientOf.fetechUsers(space, username));
}
}
在来电者:
List<Future<User>> users = new ArrayList<>();
String username = "alice";
for(String space : Arrays.asList("SPACE1", "SPACE2")) {
users.add(userService.fetchUsers(space, username));
}
List<User> resultUsers = new ArrayList<>();
for(Future<User> user: users) {
resultUsers.add(user.get());
}
return resultUsers;
在来电,我们要调用userService两个并联空间,然后合并结果,我应该如何用RxJava完成它?我看到了Tread的一些例子,我必须自己管理Tread吗?还是有一种完美的方式来完成工作?