fetch method
Implementation
Future<void> fetch(AsyncSource<T> source) async {
_sourceDisposer?.call();
_sourceDisposer = null;
void emit(AsyncState<T> state) {
if (!isDisposed) set(state);
}
final future = source.subscribe(emit);
_sourceDisposer = source.dispose;
final currentDisposer = source.dispose;
try {
await future;
} finally {
if (_sourceDisposer == currentDisposer) {
_sourceDisposer = null;
currentDisposer();
}
}
}