我使用RXJava调用昂贵的递归函数 . 大部分时间它运行得非常快,但有时会产生太长时间
如果线程仍在运行,有没有办法可以在5秒后使用 retryWhen()
?
observable = getObservable(); ///Runs a recursive function
mObserver = getSudokuPuzzleObserver();
observable.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen() // How to use retryWhen onNext() isn't called in 5 seconds
.subscribe(mSudokuPuzzleObserver);
1 回答
我不知道它是否适合你的解决方案,但我想到了类似的东西
如果observable在5秒内没有发出任何内容,
timeout
将抛出异常,如果错误是由超时引起的,它将重试完全相同的observable .