eitherMap
AsyncResult.eitherMap
Namespace: FsToolkit.ErrorHandling
Applies one of two mapping functions to an Async<Result<'okInput, 'errorInput>>: the first function is applied if the result is Ok, and the second is applied if the result is Error.
Function Signature:
('okInput -> 'okOutput)
-> ('errorInput -> 'errorOutput)
-> Async<Result<'okInput, 'errorInput>>
-> Async<Result<'okOutput, 'errorOutput>>Examples
Example 1
Transforming both the Ok and Error branches of an async result:
let result : Async<Result<string, int>> =
AsyncResult.ok 42
|> AsyncResult.eitherMap
(fun n -> sprintf "Got %d" n)
(fun err -> -1)
// evaluates to Ok "Got 42"Example 2
Mapping an Error value while the Ok path is unchanged in type:
Example 3
Normalising both branches to the same type before consuming:
Last updated