Skip to content

once

创建最多运行一次的函数

169 bytes
since v12.2.0

使用方法

围绕给定函数创建包装器,使其最多执行一次。对包装函数的后续调用返回第一次执行的结果,无论提供什么参数。这种行为类似于记忆化,但专门为单次使用函数设计。第一次调用的结果存储在内部,允许高效检索而无需重新计算。

import * as _ from "radashi";
const fn = _.once(() => Math.random());
fn(); // 0.5
fn(); // 0.5

重置函数

once.reset 函数清除先前使用 once 包装的函数的存储结果。这允许函数再次执行,就像以前从未调用过一样,实现函数的动态重用和新的计算。

import * as _ from "radashi";
const fn = once(() => Math.random());
fn(); // 0.5
fn(); // 0.5
once.reset(fn);
fn(); // 0.3
fn(); // 0.3