From 3c09d7717e1f79fb5efc690a3be595289e0fe2b7 Mon Sep 17 00:00:00 2001 From: "Xin Du (Clark)" Date: Sun, 12 Jun 2022 22:32:12 +0100 Subject: [PATCH] fix(cache): invalidate entry before calling resolver (#271) * fix(cache): prevent using invalid response from cache * Update src/runtime/cache.ts * invalidate all fields Co-authored-by: Clark Du Co-authored-by: pooya parsa --- src/runtime/cache.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/runtime/cache.ts b/src/runtime/cache.ts index 8d03ae2b19..aa562324d0 100644 --- a/src/runtime/cache.ts +++ b/src/runtime/cache.ts @@ -52,6 +52,11 @@ export function defineCachedFunction (fn: ((...args) => T | Promise), const _resolve = async () => { if (!pending[key]) { + // Remove cached entry to prevent using expired cache on concurrent requests + entry.value = undefined + entry.integrity = undefined + entry.mtime = undefined + entry.expires = undefined pending[key] = Promise.resolve(resolver()) } entry.value = await pending[key]