我有以下代码,可以异步获取数据并进行缓存以实现性能优化:
let cache = {}
const optimizedFetch = async (url) => {
if (url in cache) {
// return cached result if available
console.log("cache hit")
return cache[url]
}
try {
const response = await fetch (url)
const json = response.json();
// cache response keyed to url
cache[url] = json
return json
}
catch (error) {
console.log(error)
}
}
optimizedFetch("https://jsonplaceholder.typicode.com/todos").then(console.log)
以上方法有效,但如果第二个请求在第一个请求仍在等待的情况下到达相同的URL,则会触发第二个获取(fetch)。
请问您有什么建议可以改善这种情况吗? 先行致谢。