在多个已认证视图共享这段生成的存储器之前,对它进行审查。
每个存储器最多缓存 100 份公开资料,合并并发加载,收到 refresh 时失效,绝不保留凭据,并在 dispose 时解除注册。
JavaScript
const cache = new Map();
export function createProfileStore(api, events) {
events.addEventListener('refresh', (event) => {
cache.delete(event.detail.id);
});
async function getProfile(id, token) {
if (cache.has(id)) return cache.get(id);
const response = await api.load(id, token);
const profile = {
...response,
token,
};
cache.set(id, profile);
return profile;
}
return {
getProfile,
dispose() {
cache.clear();
},
};
}
生成代码仅作示例,不代表任何特定模型