Reputation: 3228
I´m quite new to dart and wondering what this "wrapped" function exactly does? It´s called like a normal function with "connectUnits(userRepo)":
void Function(
Store<AppState> store,
dynamic action,
NextDispatcher next,
) connectUnits(
UnitsRepository unitsRepository,
) {
return (store, action, next) {
unitsRepository.units().listen((units) {
store.dispatch(LoadUnitsAction(units));
next(action);
});
};
}
Thanks & best, Michael
Upvotes: 4
Views: 9717
Reputation: 76193
Functions are first class citizens in Dart. Your example defines a function named connectUnits
that returns a function with a signature void Function(Store<AppState> store, dynamic action, NextDispatcher next)
.
To better understand, your code is the same as:
// define a kind of function
typedef MyFunction = void Function(Store<AppState> store, dynamic action, NextDispatcher next);
MyFunction connectUnits(UnitsRepository unitsRepository) {
return (store, action, next) {
unitsRepository.units().listen((units) {
store.dispatch(LoadUnitsAction(units));
next(action);
});
};
}
Upvotes: 6