lg.cache
TypeScript icon, indicating that this package has built-in type declarations

0.0.5 • Public • Published

js缓存,基于内存的缓存,支持有效期,懒加载

六哥开源前后端脚手架

六哥npm工具库

SoarCache

import { createCache } from "lg.cache";

sessionStorage.clear();

// 创建自定义缓存
const soarCache = createCache<any>({
    name: 'soar',
    storage: sessionStorage,
    expires: 3000,
    loader(k) {
        console.log(120, k)
        return new Promise(resolve => {
            setTimeout(() => {
                console.log(110, k)
                resolve(k);
            }, 3000)
        })
    }
})

// 删除所有键
soarCache.clear();

// 推入读取
soarCache.put('a', 'a', 3);
console.log('a', soarCache.get('a'));

// 删除指定键
soarCache.remove('a', 'b')
console.log('a', soarCache.get('a'));

// 同步加载
console.log('b', soarCache.compute('b', k => k));

// 异步加载
soarCache.load('c').then(res => {
    console.log('c1', res);
})
soarCache.load('c').then(res => {
    console.log('c2', res);
})
soarCache.load('c').then(res => {
    console.log('c3', res);
})

// 异步加载
soarCache.load('d').then(res => {
    console.log('d1', res);
})
soarCache.load('d').then(res => {
    console.log('d2', res);
})

// 异步自定义加载函数
soarCache.load('e', (key: string)=> key).then(res => {
    console.log('e', res);
})
soarCache.load('f', (key: string)=> Promise.resolve(key)).then(res => {
    console.log('f', res);
})

SoarStorage

import { createStorage } from "lg.cache";

localStorage.clear();

const soarStorage = createStorage<any>({
    name: 'soar',
    storage: localStorage,
    loader(k: string) {
        console.log(120, k)
        return new Promise(resolve => {
            setTimeout(() => {
                console.log(110, k)
                resolve(k);
            }, 3000)
        })
    },
    expires: 3
});
// 设置和获取
soarStorage.setItem('A', 'A', 3);
console.log('A', soarStorage.getItem('A'));

// 删除
soarStorage.removeItem('A');
console.log('A', soarStorage.getItem('A'));

// 同步加载
console.log('B', soarStorage.compute('B', k => k));

// 异步加载
soarStorage.load('C').then(res => {
    console.log('C1', res);
})
soarStorage.load('C').then(res => {
    console.log('C2', res);
})
soarStorage.load('C').then(res => {
    console.log('C3', res);
})

// 异步加载
soarStorage.load('D').then(res => {
    console.log('D1', res);
})
soarStorage.load('D').then(res => {
    console.log('D2', res);
})

// 异步自定义加载函数
soarStorage.load('E', (key: string)=> key).then(res => {
    console.log('E', res);
})
soarStorage.load('F', (key: string)=> Promise.resolve(key)).then(res => {
    console.log('F', res);
})

Readme

Keywords

none

Package Sidebar

Install

npm i lg.cache

Weekly Downloads

48

Version

0.0.5

License

none

Unpacked Size

14.1 kB

Total Files

5

Last publish

Collaborators

  • luguoxiang