feat(hrv): 添加心率变异性监控和压力评估功能
- 新增 HRV 监听服务,实时监控心率变异性数据 - 实现 HRV 到压力指数的转换算法和压力等级评估 - 添加智能通知服务,在压力偏高时推送健康建议 - 优化日志系统,修复日志丢失问题并增强刷新机制 - 改进个人页面下拉刷新,支持并行数据加载 - 优化勋章数据缓存策略,减少不必要的网络请求 - 重构应用初始化流程,优化权限服务和健康监听服务的启动顺序 - 移除冗余日志输出,提升应用性能
This commit is contained in:
@@ -32,8 +32,25 @@ export const fetchAvailableBadges = createAsyncThunk<BadgeDto[], void, { rejectV
|
||||
{
|
||||
condition: (_, { getState }) => {
|
||||
const state = getState() as RootState;
|
||||
const { loading } = state.badges ?? {};
|
||||
return !loading;
|
||||
const { loading, lastFetched } = state.badges ?? {};
|
||||
|
||||
// 如果正在加载,阻止重复请求
|
||||
if (loading) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 如果没有缓存数据,允许请求
|
||||
if (!lastFetched) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// 如果缓存时间超过 5 分钟,允许请求
|
||||
const CACHE_DURATION = 5 * 60 * 1000; // 5分钟
|
||||
const now = Date.now();
|
||||
const lastFetchedTime = new Date(lastFetched).getTime();
|
||||
const isExpired = now - lastFetchedTime > CACHE_DURATION;
|
||||
|
||||
return isExpired;
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user