executeWithDeduplication<T> method
Register a request by its key. If it is already running - return the existing instance
Implementation
Future<T> executeWithDeduplication<T>(
String key,
Future<T> Function() requestFn,
) async {
// Check if request is already inflight
if (_inflightRequests.containsKey(key)) {
final existingRequest = _inflightRequests[key];
if (existingRequest is Future<T>) {
return existingRequest;
}
}
// Start new request and track it
final requestFuture = requestFn();
_inflightRequests[key] = requestFuture;
try {
final result = await requestFuture;
return result;
} finally {
// Remove from inflight requests when done (success or failure)
_inflightRequests.remove(key);
}
}