我想手动重试一个带有最后一个值的observable。
我知道重试和重复操作符,但是那些afaik仅适用于错误和已完成的可观察数据。我的观察结果永远不会让人忍不住,所以这不起作用。我想问一下除了这种笨拙的设置之外是否还有其他方法
queryObservable
.donNext(query -> lastQuery = query)
.mergeWith(repeatTriggerRelay)
.switchMap(query -> getData_NeverCompletingObservable(query));
void rerun() {
repeatTriggerRelay.onNext(lastQuery)
}
是否有重播过载()我不知道?感谢
答案 0 :(得分:2)
BehaviorSubject
应该是一个简单的解决方案:
BehaviorSubject<String> querySubject = BehaviorSubject.create();
querySubject
.switchMap(query -> getData_NeverCompletingObservable(query))
.subscribe(/* ... */);
querySubject.onNext("initial query");
void rerun() {
querySubject.onNext(querySubject.getValue());
}