SkipUntil无法按预期工作

时间:2016-06-12 19:07:48

标签: rx-java reactive-programming observable reactivex

我正在寻找运营商SkipUntil,但似乎没有像我期望的那样工作。 这是我的代码

@Test
public void testSkiUitil() throws InterruptedException {
    List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
    Observable observable2 = Observable.just(1);
    Subscription subscription = Observable.from(numbers)
                                          .skipUntil(observable2)
                                          .subscribe(System.out::println);
    Thread.sleep(3000);
    observable2.subscribe();
    new TestSubscriber((Observer) subscription).awaitTerminalEvent(5, TimeUnit.SECONDS);

}

我试图证明,因为observable2没有任何订阅,所以不会发出任何项目第一个observable使用运算符skipUntil应该跳过所有项目。但仍然排放所有5个项目。

知道为什么吗?。

医生说。

   Returns an Observable that skips items emitted by the source Observable until a second Observable emits

1 个答案:

答案 0 :(得分:3)

运算符skipUntil本身订阅了参数中的observable。请参阅源代码here