Computation Expression

TaskOption Computation Expression

Namespace: FsToolkit.ErrorHandling

Examples:

Example 1

Given a personId and an age, find a person and update their age.

tryParseInt : string -> int option
tryFindPersonById : int -> Task<Person option>
updatePerson : Person -> Task<unit>
// Task<unit option>
let addResult = taskOption {
  let! personId = tryParseInt "3001"
  let! age = tryParseInt "35"
  let! person = tryFindPersonById personId
  let person = { person with Age = age }
  do! updatePerson person
}

Example 2 - IAsyncEnumerable

The taskOption CE supports for .. in .. iteration over IAsyncEnumerable<'T> sequences. Iteration stops immediately when the body returns None, without consuming further elements.

The backgroundTaskOption CE inherits this support automatically.

Last updated