Skip to content

Function 函数方法 API

本文逐项记录 @fast-china/utils 的 Function 函数公开函数。

once 单次

创建最多执行一次并缓存首次结果的函数。

签名

ts
export function once<This, Arguments extends unknown[], Result>(
	callback: (this: This, ...arguments_: Arguments) => Result
): (this: This, ...arguments_: Arguments) => Result;

示例

ts
import { once } from "@fast-china/utils";

const initialize = once(() => ({ ready: true }));
const result = initialize();

输入

输入值输入值类型必填/默认值输入值说明
callback(this: This, ...arguments_: Arguments) => Result只允许执行一次的函数。

返回

返回值返回值类型返回值说明
result(this: This, ...arguments_: Arguments) => Result保持原参数与返回类型的包装函数。

同步重入

once 首次回调尚未返回时,同步重新调用同一包装函数会抛出明确错误,不会第二次执行回调。回调可以自行捕获该错误;否则它作为第一次同步错误被缓存。第一次成功返回的值或 Promise 身份保持不变。