getConcurrencyMiddleware<T> function
- List<
Middleware< middlewaresT> >
Concurrently launches middleware, the chain will continue if next()
is called in all middlewares.
Warning: Error interrupts all others
Example:
getConcurrencyMiddleware([
initializeUser,
initializeSession,
initializeDatabase,
]);
Implementation
Middleware<T> getConcurrencyMiddleware<T>(List<Middleware<T>> middlewares) {
return (T context, FutureOr<void> Function() next) async {
var concurrencies = await Future.wait(
middlewares
.map((middleware) => wrapMiddlewareNextCall(context, middleware)),
);
if (concurrencies.every((element) => element is bool)) {
return next();
}
};
}