[Fixed] How to get current value of RxJS Subject or Observable?


I have an Angular 2 service:

import {Storage} from './storage';
import {Injectable} from 'angular2/core';
import {Subject}    from 'rxjs/Subject';

export class SessionStorage extends Storage {
  private _isLoggedInSource = new Subject<boolean>();
  isLoggedIn = this._isLoggedInSource.asObservable();
  constructor() {
  setIsLoggedIn(value: boolean) {
    this.setItem('_isLoggedIn', value, () => {

Everything works great. But I have another component which doesn’t need to subscribe, it just needs to get the current value of isLoggedIn at a certain point in time. How can I do this?


A Subject or Observable doesn’t have a current value. When a value is emitted, it is passed to subscribers and the Observable is done with it.

If you want to have a current value, use BehaviorSubject which is designed for exactly that purpose. BehaviorSubject keeps the last emitted value and emits it immediately to new subscribers.

It also has a method getValue() to get the current value.

Leave a Reply

(*) Required, Your email will not be published