cache
Cache the result of a function with a single key or a list of keys in nested maps.
WARNING
The cache function is global, meaning that keys are share across all cache calls in different files for the same runtime. Make sure to use a local context variable as the first key to avoid sharing cache between unrelated contexts.
Usage
js
import { cache } from '@studiometa/js-toolkit/utils'; const keys = [document.body, Symbol('key')]; const callback = () => performance.now(); console.log(cache(keys, callback)); // 100 console.log(cache(keys, callback) === cache(keys, callback)); // true setTimeout(() => { console.log(cache(keys, callback)); // 100 }, 100); console.log(cache('key', callback)); // 200 console.log(cache('key', callback) === cache('key', callback)); // true setTimeout(() => { console.log(cache('key', callback)); // 200 }, 100);Parameters
keys(any | Array<any>): a list of keys to be used to cache the result of the callbackcallback(() => any): the callback executed to retrieve the value to cache
Return value
The value returned by the callback function given as parameter.