how to implement debouncer for events with 'onEvent'?
345
New in Bloc 7.2.0 https://verygood.ventures/blog/whats-new-in-bloc-v7-2-0
Now it uses transformer
!
import 'package:bloc/bloc.dart';
import 'package:stream_transform/stream_transform.dart';
class YourBloc extends Bloc<Event, State> {
YourBloc() : super(StateInitial()) {
on<PriceProposalEvent>(_onPriceProposalEvent,
transformer: debounce(const Duration(milliseconds: 200)));
}
}
//Debounce query requests
EventTransformer<E> debounce<E>(Duration duration) {
return (events, mapper) {
return events.debounce(duration).switchMap(mapper);
};
}
Hope, it may help ya!
Author by
Hamed
Mobile developer with over 9 years of IT experience in analysis, design, and development of various native and multi-platform mobile applications.
Updated on January 01, 2023Comments
-
Hamed over 1 year
transformEvents
method will be removed in bloc version 8, and we should useonEvent
method instead of, how can we implementdebounce
for events withonEvent
?@override Stream<Transition<PriceProposalEvent, PriceProposalState>> transformEvents( Stream<PriceProposalEvent> events, TransitionFunction<PriceProposalEvent, PriceProposalState> transitionFn, ) => super.transformEvents( events.debounceTime(const Duration(milliseconds: 200)), transitionFn, );