2016-10-09 7 views

Antwort

1

Basierend auf dem javadoc, solange Sie von jedem Observable zurück nicht cancel die Subscription s tun, wird der Beobachter für alle Observablen abonniert werden.

Ich erwarte, wenn Sie den gleichen Beobachter mehrere Male zu einer beobachtbaren abonnieren, werden Sie mehrmals benachrichtigt - sonst würden die zuvor gemachten Abonnements "magisch" tot, was etwas Probleme verursachen kann.

// data members 
Observable x, y; 

void foo(Subscriber a) { 
    // is subscriber a already registered with x? 
    // Nevermind, I'm gonna make sure it is! 
    Subscription s=x.subscribe(a); 
    // provoke a change to be caught by 'a' 

    // do some work based on whatever Subscriber 'a' captured. 

    s.unsubscribe(); 
} 

void bar() { 
    Subscriber m; 
    Subscription mx=x.subscribe(m); 
    Subscription my=y.subscribe(m); 

    // do something and then... 
    foo(mx); // one would expect the mx subscription is still valid here!!! 
    // do some more work 

    my.unsubscribe(); 
    mx.unsubscribe(); 
} 
+0

Bedeutet das, dass 'onComplete' für jede hinzugefügte Observable ausgeführt wird? – mtyson

+0

@ Mtyson Ich könnte falsch sein, aber ja, es wird - das ist die Idee schließlich (Ich habe keine rx-Java-env handy für den Moment, um es tatsächlich zu überprüfen, aber wenn mein Gedächtnis dient, wird dies das Verhalten sein) –

Verwandte Themen