目前尚不清楚如何将错误传播给 REactiveX 中的订阅者,以免 Observable 被破坏。
例子
observable.onNext(1);
observable.onNext(2);
observable.onError("Nope");
observable.onNext(3);<<won't work.
我接受这个限制,但是我仍然有这样的场景,我希望下游的听众知道发生了错误,并且我不希望 observable 死掉。
主要用例是 UI 代码,如果出现错误,我不想针对之前注册的所有 observable 调用“Setup”。
可能的替代方案是
a)推送具有数据字段和错误字段的自定义对象
class Data
{
int value;
Error * error;
}
我不喜欢这个解决方案
b) 有两个流。一个用于数据,一个用于错误。
observable.onNext(1);
observable.onNext(2);
errorObservable.onNext("Error");
observable.onNext(3);
对此的最佳常见做法是什么?