dispatchSafe<R> method

Future<Result<R>> dispatchSafe<R>(
  1. Command<R> command
)

Выполняет команду и возвращает результат в виде Result.

Ошибки обработчика и middleware не пробрасываются, а возвращаются в Result.failure вместе со стэктрейсом. Подходит, когда хочется избежать try/catch в клиентском коде и получить единый контракт «данные или ошибка».

Implementation

Future<Result<R>> dispatchSafe<R>(Command<R> command) async {
  try {
    final data = await dispatch<R>(command);
    return Result.success(data);
  } catch (e, st) {
    return Result.failure(error: e, stackTrace: st);
  }
}