sunmao-sdk
Version:
榫卯-开箱即用赋能-sdk
61 lines (54 loc) • 1.41 kB
JavaScript
import localforage from "localforage";
export function get(name, defaultValue) {
let ret;
try {
ret = localStorage.getItem(name);
} catch (e) {
console.warn(e, name, defaultValue);
}
return ret || defaultValue;
}
export function getObject(name, defaultValue = {}) {
let ret, json;
try {
json = get(name, JSON.stringify(defaultValue));
ret = JSON.parse(json);
} catch (e) {
console.warn(e, name, defaultValue);
}
return ret || defaultValue;
}
export async function getAsync(name, defaultValue) {
let ret;
try {
ret = await localforage.getItem(name);
} catch (e) {
console.warn(e, name, defaultValue);
}
return ret || defaultValue;
}
export async function getObjectAsync(name, defaultValue = {}) {
let ret, json;
try {
json = await getAsync(name, JSON.stringify(defaultValue));
ret = JSON.parse(json);
} catch (e) {
console.warn(e, name, defaultValue);
}
return ret || defaultValue;
}
export function set(name, value, isAsync = true) {
try {
if (isAsync) localforage.setItem(name, value);
else localStorage.setItem(name, value);
} catch (e) {
console.warn("localStorage缓存失败!", name, value, e);
}
}
export function setObject(name, value, isAsync = true) {
try {
set(name, JSON.stringify(value), isAsync);
} catch (e) {
console.warn("localStorage缓存失败!", name, value, e);
}
}