【发布时间】:2016-01-28 13:11:33
【问题描述】:
我想同步发射两个 Observable 对象(它们是异步的),一个接一个地返回 first 发射的 Observable 对象。如果第一个失败,它不应该发出第二个。
假设我们有一个 Observable 让用户登录,另一个 Observable 在登录后自动选择用户的帐户。
这是我尝试过的:
public Observable<AccessToken> signInAndSelectAccount(String username, String password)
{
Observable<AccessToken> ob1 = ...; // Sign in.
Observable<Account> ob2 = ...; // Select account.
return Observable.zip(
ob1,
ob2,
new Func2<AccessToken, Account, AccessToken>() {
@Override
public AccessToken call(AccessToken accessToken, Account account)
{
return accessToken;
}
});
}
不幸的是,这不适用于我的用例。它将并行发出/调用两个可观察对象,从 'ob1' 开始。
有人遇到过类似的用例吗?或者有一个想法如何让 observables 以同步的方式互相等待,第一个发出的可以返回?
提前致谢。
【问题讨论】: