Heim >Web-Frontend >js-Tutorial >Wie kann ich den aktuellen Wert eines Observablen oder Subjekts abrufen?
Abrufen des aktuellen Werts eines Observablen oder Subjekts
Diese Untersuchung bezieht sich auf die Herausforderung, den Barwert eines Observablen oder Subjekts zu extrahieren. Im Fall von Observables besteht ihr Zweck darin, den Abonnenten bei ihrer Ankunft Werte zu übermitteln. Nach der Ausgabe entsorgt das Observable die Werte. Daher ist es nicht möglich, direkt auf den aktuellen Wert eines Observablen zuzugreifen.
Aktueller Wert des Subjekts
Subjekte behalten im Gegensatz zu Observablen eine Vorstellung davon, was zuletzt ausgegeben wurde Wert. Allerdings ist dieser Wert außerhalb des Subjekts selbst nicht von Natur aus zugänglich.
Verwendung von BehaviorSubject
Eine Lösung für dieses Dilemma ist die Verwendung von BehaviorSubject. Es funktioniert wie ein Subjekt, bietet jedoch eine erhebliche Verbesserung: Es speichert den zuletzt ausgegebenen Wert und stellt ihn neuen Abonnenten sofort zur Verfügung. Darüber hinaus bietet es eine getValue()-Methode zum expliziten Abrufen des aktuellen Werts.
Durch die Einbindung von BehaviorSubject in den bereitgestellten Angular-Dienst können Sie die gewünschte Funktionalität erreichen:
<code class="typescript">import {BehaviorSubject} from 'rxjs/BehaviorSubject'; @Injectable() export class SessionStorage extends Storage { private _isLoggedInSource = new BehaviorSubject<boolean>(false); // Initialize with a default value isLoggedIn = this._isLoggedInSource.asObservable(); constructor() { super('session'); } setIsLoggedIn(value: boolean) { this.setItem('_isLoggedIn', value, () => { this._isLoggedInSource.next(value); }); } getCurrentValue(): boolean { return this._isLoggedInSource.getValue(); // Access the current value using `getValue()` } }</code>
Diese Modifikation ermöglicht Sie können den neuesten Wert von isLoggedIn mit getCurrentValue() abrufen. Sie können diesen Wert dann nutzen, ohne dass ein Abonnement erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie kann ich den aktuellen Wert eines Observablen oder Subjekts abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!