第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取RxJS Subject或Observable的當(dāng)前值?

如何獲取RxJS Subject或Observable的當(dāng)前值?

我有一個Angular 2服務(wù):import {Storage} from './storage';import {Injectable} from 'angular2/core';import {Subject}    from 'rxjs/Subject';@Injectable()export class SessionStorage extends Storage {  private _isLoggedInSource = new Subject<boolean>();  isLoggedIn = this._isLoggedInSource.asObservable();  constructor() {    super('session');  }  setIsLoggedIn(value: boolean) {    this.setItem('_isLoggedIn', value, () => {      this._isLoggedInSource.next(value);    });  }}一切正常。但是我還有另一個不需要訂閱的組件,它只需要在某個時間點(diǎn)獲取isLoggedIn的當(dāng)前值即可。我怎樣才能做到這一點(diǎn)?
查看完整描述

3 回答

?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊

一個SubjectObservable沒有的電流值。發(fā)出值時,將其傳遞給訂戶并Observable使用它完成。

如果要使用當(dāng)前值,請使用BehaviorSubject專門用于該目的的值。BehaviorSubject保留最后發(fā)出的值,并立即將其發(fā)送給新訂戶。

它還具有一種getValue()獲取當(dāng)前值的方法。


查看完整回答
反對 回復(fù) 2019-10-15
?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗 獲得超11個贊

應(yīng)該 從“可觀察/主題”中獲取值之外的唯一方法是訂閱!

如果您使用的getValue()是聲明式范例,則必須執(zhí)行某些操作。它可以作為逃生艙口,但是99.9%的時間不應(yīng)該使用getValue()。有一些有趣的事情getValue()可以做:如果主題未訂閱,它將引發(fā)錯誤;如果主題由于錯誤而死亡,它將阻止您獲取值。等等。但是,再次出現(xiàn)是為了逃脫在極少數(shù)情況下孵化。

有幾種以“ Rx-y”方式從Subject或Observable獲取最新值的方法:

  1. 使用BehaviorSubject:但實際上是訂閱它。首次訂閱時BehaviorSubject,它將同步發(fā)送它收到或初始化時使用的先前值。

  2. 使用ReplaySubject(N):這將緩存N值并將其重播給新訂戶。

  3. A.withLatestFrom(B):使用此運(yùn)算符可以B在可觀察到的A發(fā)射時從可觀察的獲取最新值。將在數(shù)組中同時提供兩個值[a, b]。

  4. A.combineLatest(B):使用此操作來得到最新的值AB每一次無論是AB發(fā)出。將在數(shù)組中同時提供兩個值。

  5. shareReplay():通過進(jìn)行可觀察的多播ReplaySubject,但允許您在發(fā)生錯誤時重試可觀察的。(基本上,它為您提供了promise-y緩存行為)。

  6. publishReplay(),publishBehavior(initialValue),multicast(subject: BehaviorSubject | ReplaySubject),等:其它運(yùn)營商,充分利用BehaviorSubjectReplaySubject。相同事物的口味不同,它們基本上通過將所有通知集中到主題中來多播可觀察的源。您需要致電connect()以訂閱該主題的來源。


查看完整回答
反對 回復(fù) 2019-10-15
  • 3 回答
  • 0 關(guān)注
  • 2618 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號