私はサブスクリプションで観測値を再試行したい。それはすべてうまくいったが、今私はこの観察可能性を再試行するたびにいくつかのコードを実行しようとしている。助言がありますか?は、observableがアイテムを放出する前にコードを実行する方法はありますか? (再試行の目的のために)
observableItem.retry(1).subscribeWith(subscriber);
私はサブスクリプションで観測値を再試行したい。それはすべてうまくいったが、今私はこの観察可能性を再試行するたびにいくつかのコードを実行しようとしている。助言がありますか?は、observableがアイテムを放出する前にコードを実行する方法はありますか? (再試行の目的のために)
observableItem.retry(1).subscribeWith(subscriber);
あなたはretryWhen
の代わりretry
を使用することができます。
observableItem
.retryWhen(attempts -> {
return attemps.flatMap(error -> {
// TODO: Do what you want here...
// If you return an Observable with an `onNext` event => retry
// else if you return an Observable with an error => no retry
return Observable.just(new Object());
})
})
.subscribeWith(subscriber);
あなたが加入しているときに観察(観測可能で任意の項目を発する前に)働くdoOnSubscribe
オペレータを必要としています。
...
observableItem
.doOnSubscribe(subscriber1 -> {
// Do whatever you want to de before retry.
})
.retry(1)
.subscribeWith(subscriber)
...
注:私はそれをテストしていません。それを試して私に知らせてください。
希望します。
@ Sami-Ikhleafはそれを助けましたか? – chandil03
質問を詳しく説明できますか?タイトルと質問の両方が異なることを言います。 – chandil03
私はobservableから何かを放射する前にいくつかのコードを実行したいと思っています。私の場合、私はそれを再試行するときにこれが起こることを望んだ –