RxJava-从两个Single Observable创建一个序列

时间:2018-11-26 14:44:47

标签: rx-java rx-java2 reactivex

我有两张单打:

  1. 从Facebook获取用户信息数据。
  2. 使用从Facebook获取的信息在我的服务器上执行用户注册。

我希望第二个Single在第一个被称为onSuccess之后立即开始,第二个Single取决于第一个的数据。 我正在寻找合适的操作员来实现这一目标。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

尝试平面图:

fetchUser
    .flatmap(user -> registerUser(user))
    .subscribe()

public Single<User> fetchUser() {...}
public Single<?> registerUser (User user) {...}

答案 1 :(得分:0)

使用 zip

的其他方法
 public Single<List<DataEntry>> getting(String rawSearchText) {
    Single single1 = dbSearch(rawSearchText);
    Single single2 = onlineSearch(rawSearchText);
    return Single.zip(single1, single2, (b1, b2) -> CombineTwoLists(b1, b2))
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread());
 }