once()
function once<F>(func): F;
Defined in: function/once.ts:27
创建一个只执行一次的函数,后续调用将返回第一次执行的结果 适用于初始化函数、资源加载等只需要执行一次的场景
Type Parameters
| Type Parameter | Description |
|---|---|
F extends () => any | 被包装的函数类型,必须是无参数函数 |
Parameters
| Parameter | Type | Description |
|---|---|---|
func | F | 需要限制只执行一次的函数 |
Returns
F
包装后的函数,与原函数类型相同
Examples
// 基础用法
const initialize = once(() => {
console.log('初始化');
return '完成';
});
initialize(); // 输出 '初始化' 并返回 '完成'
initialize(); // 直接返回 '完成',不执行函数体
// 带返回值的场景
const getConfig = once(() => {
return fetch('/config').then(res => res.json());
});
// 多次调用只会发起一次请求
getConfig();
getConfig();
**Note:** 该实现仅支持无参数函数,如需处理带参数的函数,请使用其他实现
**Note:** 第一次执行的结果会被缓存,后续调用返回相同结果