Namespace: FsToolkit.ErrorHandling
Returns the option if the option is Some, otherwise returns the given option
(ifNone : Async<'value option>) -> (input : Async<'value option>)
-> Async<'value option>let asyncOption : Async<int option> =
AsyncOption.some 1
|> AsyncOption.orElse (AsyncOption.some 2)
// async { Some 1 }let asyncOption : Async<int option> =
AsyncOption.some 1
|> AsyncOption.orElse (Async.singleton None)
// async { Some 1 }let asyncOption : Async<int option> =
Async.singleton None
|> AsyncOption.orElse (Some 2)
// async { Some 2 }let asyncOption : Async<int option> =
Async.singleton None
|> AsyncOption.orElse (Async.singleton None)
// async { None }Namespace: FsToolkit.ErrorHandling
Returns the option if the option is Some, otherwise evaluates the given function and returns the result.
(ifNoneFunc : unit -> Async<'value option>) -> (input : Async<'value option>)
-> Async<'value option>let asyncOption : Async<int option> =
AsyncOption.some 1
|> AsyncOption.orElseWith (fun () -> AsyncOption.some 2)
// async { Some 1 }let asyncOption : Async<int option> =
AsyncOption.some 1
|> AsyncOption.orElseWith (fun () -> None)
// async { Some 1 }let asyncOption : Async<int option> =
Async.singleton None
|> AsyncOption.orElseWith (fun () -> AsyncOption.some 2)
// async { Some 2 }let asyncOption : Async<int option> =
Async.singleton None
|> AsyncOption.orElseWith (fun () -> Async.singleton None)
// async { None }