in lib/src/async_map.dart [114:127]
Stream<S> _asyncMapThen<S>(
Future<S> Function(T) convert, void Function(void) then) {
Future<void>? pendingEvent;
return transformByHandlers(onData: (event, sink) {
pendingEvent =
convert(event).then(sink.add).catchError(sink.addError).then(then);
}, onDone: (sink) {
if (pendingEvent != null) {
pendingEvent!.then((_) => sink.close());
} else {
sink.close();
}
});
}