Bagaimana untuk Mendapatkan Nilai Semasa Subjek RxJS atau Boleh Diperhatikan dalam Sudut?

Mary-Kate Olsen
Lepaskan: 2024-11-04 00:14:30
asal
764 orang telah melayarinya

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

Mendapatkan Nilai Semasa Subjek RxJS atau Observable

Dalam aplikasi Angular, observable biasanya digunakan untuk menstrim data antara komponen dan perkhidmatan. Soalan biasa yang timbul ialah bagaimana untuk mendapatkan semula nilai semasa yang boleh diperhatikan tanpa melanggannya.

Dalam kod yang disediakan, perkhidmatan SessionStorage menggunakan Subjek bernama _isLoggedInSource untuk mengeluarkan keadaan log masuk semasa. Walaupun sifat isLoggedIn mendedahkan yang boleh diperhatikan ini, ia tidak mempunyai konsep nilai semasa.

Penyelesaian: Menggunakan BehaviorSubject

Penyelesaian kepada masalah ini terletak pada penggunaan BehaviorSubject dan bukannya Subjek. BehaviorSubject menjejaki nilai yang dikeluarkan terbaharu dan memancarkannya serta-merta kepada pelanggan baharu.

<code class="typescript">import {BehaviorSubject} from 'rxjs/BehaviorSubject';

@Injectable()
export class SessionStorage extends Storage {
  private _isLoggedInSource = new BehaviorSubject<boolean>(false);
  isLoggedIn = this._isLoggedInSource.asObservable();
  constructor() {
    super('session');
  }
  setIsLoggedIn(value: boolean) {
    this.setItem('_isLoggedIn', value, () => {
      this._isLoggedInSource.next(value);
    });
  }
}</code>
Salin selepas log masuk

Kini, anda boleh mendapatkan semula keadaan log masuk semasa menggunakan kaedah getValue() BehaviorSubject:

<code class="typescript">isLoggedIn = sessionService._isLoggedInSource.getValue();</code>
Salin selepas log masuk

Kesimpulan

Dengan menggunakan BehaviorSubject, anda boleh mengakses nilai semasa yang boleh diperhatikan walaupun tanpa melanggannya. Ini amat berguna apabila anda perlu membaca nilai yang dikeluarkan terkini pada titik tertentu dalam kod anda.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Semasa Subjek RxJS atau Boleh Diperhatikan dalam Sudut?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan