runLatest<T> method
Future<T?>
runLatest<
T>( - Future<T> operation(
- int generation
), {
- void onStale(
- T value
)?,
})
Implementation
Future<T?> runLatest<T>(
Future<T> Function(int generation) operation, {
void Function(T value)? onStale,
}) async {
final requestGeneration = beginRequest();
try {
final value = await operation(requestGeneration);
if (!isCurrent(requestGeneration)) {
onStale?.call(value);
return null;
}
return value;
} catch (error, stackTrace) {
if (!isCurrent(requestGeneration)) return null;
Error.throwWithStackTrace(error, stackTrace);
}
}