overrideWithValue method
Implementation
Override overrideWithValue(AsyncValue<T> value) {
return ProviderOverride(
ValueProvider<Future<T>, AsyncValue<T>>((ref) {
final completer = Completer<T>()
// Catch the error so that it isn't pushed to the zone. This is safe since FutureProvider catches errors for us
// ignore: avoid_types_on_closure_parameters
..future.then((_) {}, onError: (Object _) {});
ref.onChange = (newValue) {
if (completer.isCompleted) {
ref.markMustRecomputeState();
} else {
newValue.when(
data: completer.complete,
loading: () {},
error: completer.completeError,
);
}
};
ref.onChange!(value);
return completer.future;
}, value),
this,
);
}