transformEvents method
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);
}