Ionic 4 BehaviorSubject gettting ionic storage

#1

Hi i would like access ionic storage module inside be BehaviorSubject .

My Code below currently am using local storage i want to replace ionic storage

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { BehaviorSubject, Observable } from 'rxjs';
import { map } from 'rxjs/operators';

import { UserService } from "./user.service";

import { Token } from '../_models';

import { environment } from "../../environments/environment";

import { Storage } from "@ionic/storage";

@Injectable({ providedIn: "root" })
export class AuthenticationService {
  private currentTokenSubject: BehaviorSubject<Token>;
  public currentToken: Observable<Token>;

  constructor(
    private http: HttpClient,
    public storage: Storage,
    public user_ser: UserService
  ) {
    this.currentTokenSubject = new BehaviorSubject<Token>(
      JSON.parse(
        localStorage.getItem("currentUser") //Need to replace with ionic storage 
      )
    );
    this.currentToken = this.currentTokenSubject.asObservable();
  }

  public get currentTokenValue(): Token {
    return this.currentTokenSubject.value;
  }

  login(username: string, password: string) {
    return this.http
      .post<any>(`${environment.url}/oauth/token`, {
        username,
        password,
        grant_type: "password",
        client_id: environment.passport.client_id,
        client_secret: environment.passport.client_secret
      })
      .pipe(
        map(token => {
          if (token && token.access_token) {
            this.storage.ready().then(() => {
              this.storage.set("currentToken", token);
            });
            this.currentTokenSubject.next(token);
          }
          return token;
        })
      );
  }

  logout() {
    this.storage.remove("currentToken");
    this.currentTokenSubject.next(null);
  }
}