我知道你应该不惜一切代价避免这种情况,但如果我在RxJava中有一个子类Observable的有效用例怎么办?可能吗?我怎么能这样做?
在这种特定情况下,我有一个"存储库"类,它当前返回请求:
class Request<T> {
public abstract Object key();
public abstract Observable<T> asObservable();
[...]
public Request<T> transform(Func1<Request<T>, Observable<T>> transformation) {
Request<T> self = this;
return new Request<T>() {
@Override public Object key() { return self.key; }
@Override public Observable<T> asObservable() { return transformation.call(self); }
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我使用transform方法在需要请求键的上下文中修改响应observable(asObservable)(如缓存):
service.getItemList() // <- returns a Request<List<Item>>
.transform(r -> r.asObservable()
// The activity is the current Activity in Android
.compose(Operators.ensureThereIsAnAccount(activity))
// The cache comes last because we don't need auth for cached responses …Run Code Online (Sandbox Code Playgroud) rx-java ×1