use-async-memo
Version:
React hook for generating async memoized data.
24 lines (23 loc) • 695 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useAsyncMemo = void 0;
var react_1 = require("react");
function useAsyncMemo(factory, deps, initial) {
var _a = (0, react_1.useState)(initial), val = _a[0], setVal = _a[1];
(0, react_1.useEffect)(function () {
var cancel = false;
var promise = factory();
if (promise === undefined || promise === null)
return;
promise.then(function (val) {
if (!cancel) {
setVal(val);
}
});
return function () {
cancel = true;
};
}, deps);
return val;
}
exports.useAsyncMemo = useAsyncMemo;