executeRequest<T> method
Future<T?>
executeRequest<T>(
- Future<
T> requestFn(), { - String? cacheKey,
- NetworkStrategy? strategy,
- Duration? cacheTtl,
Execute a request through NetworkManager and emit state transitions.
Emits: Loading → Success<T> or Error/Offline.
Implementation
Future<T?> executeRequest<T>(
Future<T> Function() requestFn, {
String? cacheKey,
NetworkStrategy? strategy,
Duration? cacheTtl,
}) async {
emit(const Loading());
try {
final data = await _manager.request<T>(
requestFn,
cacheKey: cacheKey,
strategy: strategy,
cacheTtl: cacheTtl,
);
emit(Success<T>(data));
return data;
} catch (e) {
if (!_manager.isOnline) {
emit(Offline(queuedRequests: _manager.queue.length));
} else {
emit(Error(e.toString(), exception: e));
}
return null;
}
}