2
考慮下面的例子,它創建一個Observable
,調用subscriber.onNext()
和subscriber.onError()
之前包裝產生Widgets
何時需要在調用onNext()和onError()之前檢查訂閱者是否訂閱了?
public Observable<Widget> createWidgetObservable() {
return Observable.create(new Observable.OnSubscribe<Widget>() {
@Override
public void call(final Subscriber<? super Widget> subscriber) {
WidgetCreator widgetCreator = new WidgetCreator();
widgetCreator.setWidgetCreatorObserver(new WidgetCreator.WidgetCreatorObserver() {
@Override
public void onWidgetCreated(Widget widget) {
if (!subscriber.isUnsubscribed()) {
subscriber.onNext(widget);
}
}
@Override
public void onWidgetError(Throwable e) {
if (!subscriber.isUnsubscribed()) {
subscriber.onError(e);
}
}
});
}
});
}
是subscriber.isUnsubscribed()
檢查必要另一個API?
如果是這樣,檢查總是必要的,還是取決於使用observable的組合/訂閱者?
包含支票是否是最佳做法?