本来是不打算发这篇文章的,但是最近很多人使用了官网提供的Storage,基本上都会烦恼get/set数据异步返回问题(由于使用了IndexedDB和WebSQL),所以我就决定分享一下我的代码。虽然官网的提供的相对比较智能(优先级:IndexedDB> WebSQL>localstorage)。但是如果只是存储一些简单的key/value的话,我还是会选择自己封装的方式,因为受不了异步返回。1. 控制台输入命令创建用来存储的provider$ ionic g provider StorageService2. 封装函数

打开providers目录下的storage-service.ts,修改如下import { Injectable } from '@angular/core';@Injectable()

export class StorageServiceProvider {

constructor() {}

write(key: string, value: any) {        if (value) {

value = JSON.stringify(value);

}

localStorage.setItem(key, value);

}

read(key: string): T {

let value: string = localStorage.getItem(key);        if (value && value != "undefined" && value != "null") {            return JSON.parse(value);

}        return null;

}

sessionWrite(key: string, value: any) {        if (value) {

value = JSON.stringify(value);

}

sessionStorage.setItem(key, value);

}

sessionRead(key: string): T {

let value: string = sessionStorage.getItem(key);        if (value && value != "undefined" && value != "null") {            return JSON.parse(value);

}        return null;

}

}3.使用

在需要的页面import { StorageServiceProvider } from 'xxx'; constructor(private storageService:StorageServiceProvider ) {}//写入this.storageService.write('key','value');//读取this.storageService.read('key');

作者:No刹那光辉

链接:https://www.jianshu.com/p/565317ed16ff

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐