foldResult

TaskResult.foldResult

Namespace: FsToolkit.ErrorHandling

Function Signature:

('a -> 'b) -> ('c -> 'b) -> Task<Result<'a, 'c>> -> Task<'b>

This is just a shortcut for Task.map Result.fold. See Result.fold for more.

Examples

Example 1

type HttpResponse<'a, 'b> =
  | Ok of 'a
  | InternalError of 'b

// CreatePostRequest -> Task<Result<PostId, exn>>
let createPost (req : CreatePostRequest) = task {
  // ...
}

// Task<HttpResponse>
let handler (httpReq : HttpRequest) = 
  // ... 
  
  // Task<Result<PostId, exn>>
  let createPostTR = createPost httpReq

  createPostTR
  |> TaskResult.fold Ok InternalError

Last updated