transformEvents method
inherited
Transforms the events
stream along with a next
function into a Stream<State>
.
Events that should be processed by mapEventToState need to be passed to next
.
By default asyncExpand
is used to ensure all events
are processed in the order
in which they are received. You can override transformEvents for advanced usage
in order to manipulate the frequency and specificity with which mapEventToState
is called as well as which events
are processed.
For example, if you only want mapEventToState to be called on the most recent
event
you can use switchMap
instead of asyncExpand
.
@override
Stream<State> transformEvents(events, next) {
return (events as Observable<Event>).switchMap(next);
}
Alternatively, if you only want mapEventToState to be called for distinct events
:
@override
Stream<State> transformEvents(events, next) {
return super.transformEvents(
(events as Observable<Event>).distinct(),
next,
);
}
Implementation
Stream<State> transformEvents(
Stream<Event> events,
Stream<State> next(Event event),
) {
return events.asyncExpand(next);
}