Angular 애플리케이션에서 Observable은 일반적으로 구성 요소와 서비스 간에 데이터를 스트리밍하는 데 사용됩니다. 발생하는 일반적인 질문은 구독하지 않고 Observable의 현재 값을 검색하는 방법입니다.
제공된 코드에서 SessionStorage 서비스는 _isLoggedInSource라는 제목을 사용하여 현재 로그인 상태를 내보냅니다. isLoggedIn 속성은 이 관찰 가능 항목을 노출하지만 현재 값의 개념은 없습니다.
이 문제에 대한 해결책은 주제 대신 BehaviorSubject를 사용하는 것입니다. BehaviorSubject는 가장 최근에 내보낸 값을 추적하고 이를 새 구독자에게 즉시 내보냅니다.
<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>
이제 BehaviorSubject의 getValue() 메서드를 사용하여 현재 로그인 상태를 검색할 수 있습니다.
<code class="typescript">isLoggedIn = sessionService._isLoggedInSource.getValue();</code>
BehaviorSubject를 사용하면 Observable을 구독하지 않고도 Observable의 현재 값에 액세스할 수 있습니다. 이는 코드의 특정 지점에서 최근에 방출된 값을 읽어야 할 때 특히 유용합니다.
위 내용은 RxJS 주제 또는 Angular에서 관찰 가능 항목의 현재 값을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!