Non è chiaro come propagare gli errori ai sottoscrittori in REactiveX in modo che l'Observable non venga distrutto.ReactiveX: gestione degli errori che non distrugge osservabile
Esempio
observable.onNext(1);
observable.onNext(2);
observable.onError("Nope");
observable.onNext(3);<<won't work.
accetto questa restrizione come è, però ho ancora scenario in cui voglio ascoltatori a valle sappiano riscontrato un errore E Non voglio il osservabile a morire.
Il caso d'uso principale per questo è il codice UI che, se arriva un errore, non voglio dover chiamare "Setup" contro tutti gli osservabili in precedenza registrati.
Le possibili alternative sono
a) spingere un oggetto personalizzato che ha un campo di dati e un campo di errore
class Data
{
int value;
Error * error;
}
Non mi piace questa soluzione
b) avere due flussi. Uno per i dati e uno per gli errori.
observable.onNext(1);
observable.onNext(2);
errorObservable.onNext("Error");
observable.onNext(3);
Quali sono le migliori pratiche comuni per questo?