resolve-once-map
Version:
Resolves a promise only once and memoizes the result in a map
17 lines (16 loc) • 433 B
JavaScript
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]();
};
}