订阅订阅者到另一个可观察的?
Subscribe subscriber to another observable?
将一个 observable 的订阅者订阅到另一个 observable 有什么问题吗?
类似于:
Observable.create((Subscriber<? super Response> subscriber) -> {
Observable<T1> o1 = createObservableT1(location); //Hot observable
Observable<T2> o2 = createObservableT2(location); //Hot observable
Observable.zip(o1,o2,(T1 r1, T2 r2) -> {
return createResponse(r1,r2);
}).subscribe(subscriber); //Subscribe our subscriber to the created observable
});
这是一个好的模式还是有一些隐藏的缺点?
如果有一些缺点,考虑到 o1 和 o2 是热 Observable,需要结合起来创建返回的 Observable,我该怎么做,必须将其作为冷 Observable 进行维护。
我找不到任何问题。但是我会推荐defer
,比如
Observable.defer(
() -> createObservableT1(location)
.zipWith(createObservableT2(location),
(r1, r2) -> createResponse(r1, r2)));
将一个 observable 的订阅者订阅到另一个 observable 有什么问题吗?
类似于:
Observable.create((Subscriber<? super Response> subscriber) -> {
Observable<T1> o1 = createObservableT1(location); //Hot observable
Observable<T2> o2 = createObservableT2(location); //Hot observable
Observable.zip(o1,o2,(T1 r1, T2 r2) -> {
return createResponse(r1,r2);
}).subscribe(subscriber); //Subscribe our subscriber to the created observable
});
这是一个好的模式还是有一些隐藏的缺点? 如果有一些缺点,考虑到 o1 和 o2 是热 Observable,需要结合起来创建返回的 Observable,我该怎么做,必须将其作为冷 Observable 进行维护。
我找不到任何问题。但是我会推荐defer
,比如
Observable.defer(
() -> createObservableT1(location)
.zipWith(createObservableT2(location),
(r1, r2) -> createResponse(r1, r2)));