Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 8x 1x 1x 2x 1x 1x 2x | /** * Creates a function that is restricted to invoking `func` once. Repeat calls to the function return the value of the first invocation. * @param fn the function to wrap * @signature P.once(fn) * @example * const initialize = P.once(createApplication); * initialize(); * initialize(); * // => `createApplication` is invoked once * @category Function */ export function once<T>(fn: () => T): () => T { let called = false; let ret: T; return () => { if (!called) { ret = fn(); called = true; } return ret; }; } |