dispatch<R> method
- Command<
R> command
Выполняет команду и возвращает результат.
Ошибки:
- CommandHandlerNotFoundException, если обработчик не найден.
- CommandTypeMismatchException, если тип команды не соответствует ожидаемому типу обработчика.
- Любые ошибки обработчика пробрасываются наружу.
Implementation
Future<R> dispatch<R>(Command<R> command) {
Future<R> run(int index) {
if (index < _middlewares.length) {
final middleware = _middlewares[index];
return middleware.handle<R>(command, () => run(index + 1));
}
return _invokeHandler<R>(command);
}
return run(0);
}