function

Source: index.js:6

函数处理工具函数


Static Methods

after(count: number, fn: function): function

创建一个在调用次数达到阈值后才执行的函数。

Parameters

  • count (number) — 触发阈值,必须为正整数
  • fn (function) — 目标函数

Returns

Throws

  • TypeError | RangeError — 参数类型或 count 不合法时抛出

ary(fn: function, count?: number): function

static
ary.js:10

创建一个最多接收指定数量参数的函数。

Parameters

  • fn (function) — 目标函数
  • count (number, optional, default: "fn.length") — 最大参数数量

Returns

  • function — 参数受限的包装函数

Throws

  • TypeError | RangeError — 参数类型或 count 不合法时抛出

before(count: number, fn: function): function

创建一个最多执行指定次数的函数,之后始终返回最近一次结果。

Parameters

  • count (number) — 最大执行次数
  • fn (function) — 目标函数

Returns

Throws

  • TypeError | RangeError — 参数类型或 count 不合法时抛出

compose(...functions: function): function

从右到左组合多个函数。

Parameters

  • functions (function) — 要组合的函数

Returns

Throws

  • TypeError — 任一参数不是函数时抛出

curry(fn: function, ...arg: *): function

将多参数函数转换为可分批传参的柯里化函数。

Parameters

  • fn (function) — 目标函数
  • arg (*) — 初始参数

Returns

Throws

  • TypeError — fn 不是函数时抛出

debounce( fn: function, wait?: number, options?: Object, ): function

创建防抖函数,支持前缘、尾调用以及 cancel/flush 控制。

Parameters

  • fn (function) — 目标函数
  • wait (number, optional, default: 0) — 等待毫秒数
  • options (Object, optional) — 执行选项
    • options.leading (boolean, optional, default: false) — 是否在等待开始时立即执行
    • options.trailing (boolean, optional, default: true) — 是否在等待结束后执行

Returns

  • function — 带 cancel 和 flush 方法的防抖函数

Throws

  • TypeError | RangeError — 参数类型或 wait 不合法时抛出

flip(fn: function): function

static
flip.js:9

创建一个以相反参数顺序调用目标函数的包装函数。

Parameters

Returns

Throws

  • TypeError — fn 不是函数时抛出

identity(value: *): *

原样返回传入值。

Parameters

  • value (*) — 任意值

Returns

  • * — 原值

memoize(fn: function, resolver?: function): function

创建带 Map 缓存的记忆化函数。

Parameters

  • fn (function) — 需要缓存的函数
  • resolver (function, optional) — 根据参数生成缓存键的函数

Returns

  • function — 记忆化函数,附带可读写的 cache 属性

Throws

  • TypeError — fn 或 resolver 不是函数时抛出

negate(predicate: function): function

创建返回 predicate 结果相反值的函数。

Parameters

Returns

Throws

  • TypeError — predicate 不是函数时抛出

noop(): undefined

static
noop.js:7

执行后返回 undefined 的空函数。

Returns

  • undefined — 始终返回 undefined

once(fn: function): function

static
once.js:9

创建一个最多执行一次的函数。首次调用会保留调用方的 this 和全部参数;后续调用返回 undefined。

Parameters

Returns

  • function — 只能执行一次的函数

Throws

  • TypeError — fn 不是函数时抛出

pipe(...functions: function): function

static
pipe.js:9

从左到右串联多个函数。

Parameters

  • functions (function) — 要串联的函数

Returns

Throws

  • TypeError — 任一参数不是函数时抛出

sleep(wait: number): Promise.<void>

返回一个在指定时间后兑现的 Promise,不会阻塞事件循环。

Parameters

  • wait (number) — 等待时间,单位为毫秒

Returns

  • Promise.<void> — 等待完成后兑现的 Promise

Throws

  • TypeError — wait 不是非负有限数字时抛出

throttle( fn: function, wait?: number, options?: Object, ): function

创建节流函数,支持前缘、尾调用以及 cancel/flush 控制。

Parameters

  • fn (function) — 目标函数
  • wait (number, optional, default: 0) — 节流窗口毫秒数
  • options (Object, optional) — 执行选项
    • options.leading (boolean, optional, default: true) — 是否在节流窗口开始时立即执行
    • options.trailing (boolean, optional, default: true) — 是否在节流窗口结束后执行

Returns

  • function — 带 cancel 和 flush 方法的节流函数

Throws

  • TypeError | RangeError — 参数类型或 wait 不合法时抛出