fetchFuture<T> static method
Implementation
static Future<T> fetchFuture<T>(
String key,
Future<T> Function() future, {
bool enableCache = true,
bool enableBackgroundFetch = true,
}) async {
if (enableCache && _cache.containsKey(key)) {
final cachedData = retrieveData<T>(key);
if (cachedData != null) {
if (enableBackgroundFetch && !isFetching(key)) {
_fetchFutureInBackground(key, future, enableCache);
}
return cachedData;
}
}
try {
final data = await future();
if (enableCache) {
store(key, data);
}
if (enableBackgroundFetch && !isFetching(key)) {
_fetchFutureInBackground(key, future, enableCache);
}
return data;
} catch (e) {
rethrow;
}
}