代码拉取完成,页面将自动刷新
一个轻量级的请求缓存和归源请求工具,用于确保同一时间内相同的请求只执行一次,并提供灵活的缓存管理功能。
npm install origin-request
# 或
yarn add origin-request
import { oReq } from 'origin-request';
// 模拟API请求
async function fetchUserData(userId: string) {
return oReq(
async () => {
const response = await fetch(`/api/users/${userId}`);
return response.json();
},
{
key: `user-${userId}`, // 可选:指定唯一键
expireTime: 5 * 60 * 1000 // 可选:设置缓存时间(5分钟)
}
);
}
// 多次调用同一请求,实际只会执行一次
const user1 = await fetchUserData('123');
const user2 = await fetchUserData('123'); // 从缓存中获取,不会重复请求
按需使用
async function fetchUserData(userId: string) {
// 请求...
}
// 多次调用同一请求,实际只会执行一次
const user1 = await oReq(fetchUserData)
const user2 = await oReq(fetchUserData) // 从缓存中获取,不会重复请求
import { OriginRequest } from 'origin-request';
// 设置全局默认缓存时间为10分钟
OriginRequest.setDefaultCacheExpireTime(10 * 60 * 1000);
// 设置永久缓存
OriginRequest.setDefaultCacheExpireTime(null);
import { OriginRequest } from 'origin-request';
// 清除特定请求的缓存
OriginRequest.clearRequestCache('user-123');
// 清除所有请求缓存
OriginRequest.clearAllRequestCache();
归源请求函数,确保同一时间内相同的请求只执行一次。
function originRequest<T>(
requestFn: () => Promise<T>,
options?: OriginRequestOptions
): Promise<T>
参数:
requestFn
: 要执行的请求函数options
: 配置选项
key
: 请求的唯一键,用于标识相同请求expireTime
: 缓存有效期(毫秒),null 表示永不过期设置全局默认缓存有效期。
function setDefaultCacheExpireTime(expireTime: number | null): void
参数:
expireTime
: 缓存有效期(毫秒),null 表示永不过期清除特定请求的缓存。
function clearRequestCache(key: string | number | symbol): boolean
参数:
key
: 要清除的缓存键清除所有请求缓存。
function clearAllRequestCache(): void
该库使用智能的缓存清理机制,具有以下特点:
按需清理:
智能调度:
资源优化:
key
,将使用请求函数本身或函数签名作为键key
以确保正确识别相同请求欢迎提交 Issue 和 Pull Request!
MIT
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。