2016-06-02 7 views
0

Ich fragte mich, ob es möglich ist, wiederzugeben oder erneut senden die letzte Nachricht eines Observable in RxJS.Erhalten letzte Nachricht von Observable mit RxJS

Like:

class MyClass { 

    results: Observable<MyData[]>; 
    first: MyData; 

    reactToSmth() { 
     this.results.subscribe((data: MyData[]) => { 
      this.first = data[0]; 
     }); 
    } 

    reactToSmthElse() { 
     // doesn't exist :-) 
     this.results.resendLast(data: MyData[]) => { 
      this.first = data[1]; 
     }); 
    } 

} 

Ich weiß, dass ich einfach data in meiner Klasse speichern kann, so dass ich später manipulieren kann, die gleichzeitig in einem komplexeren Fall würde ich gerne wissen, ob ist möglich zu tun so etwas und wie.

Danke.

Antwort

0

Nun ja, es ist möglich und sogar einfach. Es gibt mehrere Optionen, aber die einfachste für das, was Sie präsentieren, ist wahrscheinlich, geben obs$ eine beobachtbare, verwenden Sie obs$.shareReplay(1), um eine beobachtbare zu erhalten, die, wenn abonniert wird, den letzten emittierten Wert von obs$ zurückgeben.