1

我正在寻找运营商 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 没有任何订阅,所以不发射任何项目,使用运算符 skipUntil 的第一个 observable 应该跳过所有项目。但仍在发射所有 5 个项目。

知道为什么吗?

医生说。

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

1 回答 1

4

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

于 2016-06-12T20:10:28.883 回答