Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   private static _database: IDBDatabase;
  2.  
  3.   constructor() {
  4.     this.getDatabase().subscribe(db => IndexedDbService._database = db);
  5.   }
  6.  
  7.   private getDatabase(): Observable<IDBDatabase> {
  8.     if (!!IndexedDbService._database) return of(IndexedDbService._database);
  9.  
  10.     return new Observable((observer: Observer<IDBDatabase>) => {
  11.       const request: IDBOpenDBRequest = indexedDB.open(this.DATABASE_NAME, 1);
  12.  
  13.       request.onsuccess = (event: Event) => {
  14.         observer.next((<IDBOpenDBRequest>event.target).result);
  15.         observer.complete();
  16.       };
  17.  
  18.       request.onerror = (event: Event) => observer.error((<IDBOpenDBRequest>event.target).error.name);
  19.  
  20.       request.onupgradeneeded = (event: Event) => {
  21.         observer.next((<IDBOpenDBRequest>event.target).result);
  22.         IndexedDbService._database.createObjectStore(StoreNames.RSI, {keyPath: 'id', autoIncrement: true});
  23.       }
  24.     });
  25.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement