Observable が破棄されないように、REactiveX のサブスクライバーにエラーを伝達する方法が不明です。
例
observable.onNext(1);
observable.onNext(2);
observable.onError("Nope");
observable.onNext(3);<<won't work.
この制限をそのまま受け入れますが、ダウンストリームのリスナーにエラーが発生したことを知らせ、オブザーバブルを死なせたくないというシナリオがまだあります。
これの主な使用例は、エラーが発生した場合に、以前に登録したすべてのオブザーバブルに対して「セットアップ」を呼び出す必要がないようにする UI コードです。
可能な代替手段は次のとおりです。
a) データ フィールドとエラー フィールドを持つカスタム オブジェクトをプッシュする
class Data
{
int value;
Error * error;
}
私はこの解決策が好きではありません
b) 2 つのストリームを持つ。1 つはデータ用、もう 1 つはエラー用です。
observable.onNext(1);
observable.onNext(2);
errorObservable.onNext("Error");
observable.onNext(3);
これに対する一般的なベストプラクティスは何ですか?