2016-10-10 71 views
0

我有几个observervables我从一套合并。出于某种原因,合并的观测值正在调用onComplete,即使个别观察值不是。RxJava:合并可观察的调用onComplete虚假地

例子:

Set<Observable<InputOutputEvent>> set = new HashSet<Observable<InputOutputEvent>>(); 
    for (Observable ob : obs) { 
     ob.subscribe((e) -> { 
     }, 
     (error) -> { 
System.out.println("This does NOT happen."); 
     }, 
     () -> { 
      System.out.println("This does NOT happen."); 
     }); 
     set.add(c.event()); 
    } 

    Subscription s = Observable.merge(set).subscribe((e) -> { 
      }, 
      (error) -> { 
       System.out.println("This does NOT happen."); 
      }, 
      () -> { 
       System.out.println("This DOES happen."); 
      }); 

这怎么可能?合并观察者是不是应该只在所有合并的函数调用它时调用onComplete?

我也检查了错误,但没有。

回答

1

把这个作为一个警告他人:

观测的set是空的。在这种情况下立即调用onComplete。