Namespace: FsToolkit.ErrorHandling
orElse returns the original TaskValidation if it is Ok, otherwise returns the provided alternative TaskValidation.
TaskValidation<'ok, 'errorOutput> -> TaskValidation<'ok, 'errorInput> -> TaskValidation<'ok, 'errorOutput>let result =
TaskValidation.ok "First"
|> TaskValidation.orElse (TaskValidation.ok "Second")
// task { Ok "First" }let result =
TaskValidation.error "First"
|> TaskValidation.orElse (TaskValidation.ok "Second")
// task { Ok "Second" }let result =
TaskValidation.error "First"
|> TaskValidation.orElse (TaskValidation.error "Second")
// task { Error ["Second"] }orElseWith returns the original TaskValidation if it is Ok, otherwise calls the given function with the error list and returns its result.
('errorInput list -> TaskValidation<'ok, 'errorOutput>) -> TaskValidation<'ok, 'errorInput> -> TaskValidation<'ok, 'errorOutput>let result =
TaskValidation.ok "First"
|> TaskValidation.orElseWith (fun _ -> TaskValidation.ok "Second")
// task { Ok "First" }let result =
TaskValidation.error "First"
|> TaskValidation.orElseWith (fun _ -> TaskValidation.ok "Second")
// task { Ok "Second" }let result =
TaskValidation.error "First"
|> TaskValidation.orElseWith (fun errors ->
TaskValidation.error $"Recovered from: %A{errors}")
// task { Error ["Recovered from: [\"First\"]"] }