Create a function that can only be called once, returning the cached result for subsequent invocations.
Code
Boilerplatesconst once = (fn) => {
let called = false, result;
return (...args) => {
if (!called) {
called = true;
result = fn(...args);
}
return result;
};
};
let count = 0;
const increment = once(() => ++count);
return [increment(), increment(), increment()].join(',');Browser·fetch() may be limited by CORS
More JavaScript Snippets
Debounce
Create a debounced function that delays execution until after a specified wait period has elapsed since the last call.
Memoize
Cache function results to avoid redundant calculations and improve performance for expensive operations.
Parallel with Limit
Run promises in parallel with a concurrency limit to control resource usage and prevent overwhelming external services.
Promise.allSettled
Wait for all promises to settle, whether they resolve or reject.
Promise.any
Return the result of the first promise that resolves successfully.
Retry with Backoff
Retry an async function with exponential backoff to handle transient failures gracefully.