import { Injectable } from '@angular/core'; import { localstoreService } from '../localstore.service'; import { SHA1 } from 'crypto-js'; @Injectable({ providedIn: 'root' }) export class ChatUserService { // main data private _userList = {} // local storage keyName private keyName: string; constructor() { this.keyName = (SHA1('chat'+this.constructor.name)).toString() setTimeout(()=> { let restore = localstoreService.get(this.keyName, {}) this._userList = restore.userList || {} }, 10) } get userList() { return this._userList } add(roomId:string, userList: any[] = []) { this._userList[roomId] = userList this.save() } private save() { setTimeout(()=> { localstoreService.set(this.keyName, { userList: this._userList }) }, 10) } } export const ChatUserStorage = new ChatUserService()