2015-01-13 6 views
0

관찰 대상 구독자를 다른 관찰 대상 구독에 문제가 있습니까?구독자를 다른 관찰 대상에 구독 하시겠습니까?

같은 것을 :

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

아무런 문제가 발견되지 않습니다. 하지만

Observable.defer(
    () -> createObservableT1(location) 
        .zipWith(createObservableT2(location), 
         (r1, r2) -> createResponse(r1, r2))); 
과 같이 defer을 사용하는 것이 좋습니다.
관련 문제