send method
Implementation
Future<List<ActionStateTuple<A, S>>> send(A action) async {
List<ActionStateTuple<A, S>> actionStateTuples = [];
final reducerTuple = _reducer.run(_state, action);
_state = reducerTuple.state;
actionStateTuples.add(ActionStateTuple(action, reducerTuple.state));
await Future.forEach(reducerTuple.effectTasks, (effectTask) async {
final optionalAction = await effectTask.run(_state, _environment, null);
if (optionalAction != null) {
final reducerTuple = _reducer.run(_state, optionalAction);
_state = reducerTuple.state;
actionStateTuples
.add(ActionStateTuple(optionalAction, reducerTuple.state));
}
});
return actionStateTuples;
}