readNetworkCache method
Implementation
Future<dynamic> readNetworkCache({
required String path,
required Map<String, dynamic> params,
List<String>? ignoreKeys,
int? cacheInvalidationTime,
}) async {
final cacheKey =
NetUtils.getCacheKeyFromPath(path, params, ignoreKeys ?? []);
final cached = await _database?.get<String>(cacheKey);
if (cached == null) {
return null;
}
final cacheData = jsonDecode(cached);
final timestamp = cacheData['timestamp'] as int;
final now = DateTime.now().millisecondsSinceEpoch;
final ttl = cacheInvalidationTime ?? _cacheInvalidationTime;
if (ttl > 0 && (now - timestamp) > ttl) {
// 缓存已过期,删除该条目
await remove(cacheKey);
return null;
}
await _updateMetadataOnAccess(cacheKey);
return cacheData['data'];
}