fix in cache loader

This commit is contained in:
Jan Prochazka
2022-03-05 12:21:05 +01:00
parent d7a2bf3ac0
commit e8d24e177b

View File

@@ -178,12 +178,15 @@ async function getCore(loader, args) {
function useCore(loader, args) { function useCore(loader, args) {
const { url, params, reloadTrigger, transform, onLoaded } = loader(args); const { url, params, reloadTrigger, transform, onLoaded } = loader(args);
const cacheKey = stableStringify({ url, ...params }); const cacheKey = stableStringify({ url, ...params });
let closed = false;
return { return {
subscribe: onChange => { subscribe: onChange => {
async function handleReload() { async function handleReload() {
const res = await getCore(loader, args); const res = await getCore(loader, args);
onChange(res); if (!closed) {
onChange(res);
}
} }
handleReload(); handleReload();
@@ -191,6 +194,7 @@ function useCore(loader, args) {
if (reloadTrigger) { if (reloadTrigger) {
subscribeCacheChange(reloadTrigger, cacheKey, handleReload); subscribeCacheChange(reloadTrigger, cacheKey, handleReload);
return () => { return () => {
closed = true;
unsubscribeCacheChange(reloadTrigger, cacheKey, handleReload); unsubscribeCacheChange(reloadTrigger, cacheKey, handleReload);
}; };
} }