Heim > Web-Frontend > js-Tutorial > Wie kann ich den aktuellen Wert eines Observablen oder Subjekts abrufen?

Wie kann ich den aktuellen Wert eines Observablen oder Subjekts abrufen?

DDD
Freigeben: 2024-11-03 13:54:03
Original
1054 Leute haben es durchsucht

How to Retrieve the Current Value of an Observable or Subject?

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage