F# 异步 - 如果第一个异步成功,则执行另一个异步否则 false



我对如何完成这个看似简单的任务有点困惑。我正在使用WSDL Type Provider.我想调用一个请求,如果成功,则调用另一个请求并返回结果:

let submitAll answers info = async {
  let! answerResult = ws.AddAnswersAsync(info.id, answers) |> Async.AwaitIAsyncResult
  return!
    if answerResult
    then ws.SubmitInfo(info) |> Async.AwaitIAsyncResult
    else false
  }

所以,我知道我返回了两种类型。但是我不确定如何处理false,有没有一种简单的方法可以使其async

有没有更好的方法来编写这种异步流?

let submitAll answers info = async {
  let! answerResult = ws.AddAnswersAsync(info.id, answers) |> Async.AwaitIAsyncResult
  return!
    if answerResult
    then ws.SubmitInfo(info) |> Async.AwaitIAsyncResult
    else async {return false}
  }

最新更新