UNPKG

resolve-once-map

Version:

Resolves a promise only once and memoizes the result in a map

17 lines (16 loc) 433 B
import resolveOnce from 'resolve-once'; export default function resolveOnceMap(fn) { const resolvers = {}; return (key)=>{ if (!resolvers[key]) { resolvers[key] = resolveOnce(()=>{ try { return fn(key); } catch (err) { return Promise.reject(err); } }); } return resolvers[key](); }; }