经过多次尝试并认为我的代码中有错误,我尝试了下一个官方文档中关于unstable_cache的示例。
const getCachedUser = unstable_cache(
async (id) => getEmployerByAuthID(id),
["my-app-user"],
);
export default async function MyProfileInfo() {
const { authUser, userData } = await getAuthUser({
redirectionOnError: pages.login,
});
let employer;
try {
employer = await getCachedUser(authUser.id);
} catch (err) {
console.log(err);
}
}
在 getEmployerByAuthID 内部,我有一个控制台日志来查看该函数是否已被调用。 它总是被执行,而我期望结果来自缓存。
unstable_cache 还工作吗?我现在不想切换到 nextjs15。 或者有什么配置可以让它工作吗?
我建议您检查以下事项
这是我更新的一些基础知识,你可以尝试查看
const getCachedUser = unstable_cache(
async (id) => getEmployerByAuthID(id),
(id) => [`my-app-user-${id}`], // Cache key based on the user ID
);
export default async function MyProfileInfo() {
const { authUser, userData } = await getAuthUser({
redirectionOnError: pages.login,
});
let employer;
try {
// Ensure that this ID is correct and the cache is properly utilized
employer = await getCachedUser(authUser.id);
} catch (err) {
console.log(err);
}
}`