2016-06-12 30 views
1

Ich suche den Operator SkipUntil, aber scheint wie funktioniert nicht so, wie ich es erwarte. Hier ist mein CodeSkipUntil funktioniert nicht wie erwartet

@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); 

} 

Ich habe versucht, zu beweisen, dass da observable2 keine abonnierten hat, ist so kein Element emittiert die erste beobachtbare den Bediener skipUntil verwenden, sollten alle Elemente überspringen. Aber immer noch emittiert alle 5 Gegenstände.

Irgendeine Idee warum ?.

Das Dokument sagt.

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

Antwort

3

Der Operator skipUntil selbst subskribiert das Observable im Argument. Siehe den Quellcode here.

Verwandte Themen