whenResult<T> method

MessageHandlerWhenResultBuilder<M, D, C, T> whenResult<T>(
  1. FutureOr<Result<T>> result(
    1. MessageHandlerContext<M, D, C>
    ),
  2. void buildSuccess(
    1. MessageHandlerBuilder<M, D, T> builder
    ), {
  3. String? label,
})

Describes message handling behavior that runs conditionally, depending on a Result value.

When the message is processed, the result function is evaluated, and the returned Result is used to determine the handler behavior. If Result.isValue is true, then the behavior described by the buildSuccess callback will take place. If Result.isError is true, then an exception will be raised. However, MessageHandlerWhenResultBuilder.otherwise can be used to override the default error handling.

Implementation

MessageHandlerWhenResultBuilder<M, D, C, T> whenResult<T>(
  FutureOr<Result<T>> Function(MessageHandlerContext<M, D, C>) result,
  void Function(MessageHandlerBuilder<M, D, T> builder) buildSuccess, {
  String? label,
}) {
  var whenResultBuilder = MessageHandlerWhenResultBuilder<M, D, C, T>._(
    this,
    result,
    buildSuccess,
    label,
  );

  descriptor = whenResultBuilder.descriptor;

  return whenResultBuilder;
}