我正在寻找一种方法来定义观察者的顺序(?)。
@GET("/get_user_msgs")
Observable<PrivateMessagesResponse> getPrivateMessages(@QueryMap Map<String, String> params);
例如,我通过 Retrofit 创建的 Rest API 提供了一个 Observable。
在我的ListView
观察Observable
中。
api.getPrivateMessages(params).subscribe(new Observer());
我还有一个用于我的 Espresso 测试的 API 包装器,并且我在Observable
那里订阅了相同的包装器。这种方式首先调用 API 包装器中的观察者,然后才ListView
调用观察者。
public class IdlingWrapper implements Api, IdlingResource {
....
public IdlingWrapper(Api realApi) {
this.realApi = realApi;
}
...
public Observable<PrivateMessagesResponse> getPrivateMessages(@QueryMap Map<String, String> params); {
counter.incrementAndGet();
return wrapObservable(realApi.getPrivateMessages(params));
}
protected <T> Observable<T> wrapObservable(final Observable<PrivateMessagesResponse> observable) {
//what to do here?
}
}
有没有办法在所有其他人完成后强制通知一些观察者?或者类似的事情?
就像是
Observable observable = getObservable();
observable.subscribeAsLast(new LastObserver());
observable.subscribe(new ObserverA());
observable.subscribe(new ObserverB());
所以ObserverA
会先通知,然后ObserverB
才通知LastObserver
。
或任何其他方法,我可以找出所有注册观察员何时得到通知和完成。