订阅订阅者到另一个可观察者?

时间:2015-01-13 21:30:41

标签: reactive-programming rx-java

订阅另一个可观察的观察者的订阅者是否有任何问题?

这就像:

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。

1 个答案:

答案 0 :(得分:1)

我找不到任何问题。但我建议defer,例如

Observable.defer(
    () -> createObservableT1(location)
                  .zipWith(createObservableT2(location),
                      (r1, r2) -> createResponse(r1, r2)));
相关问题