Asynchronous 异步-如果第一次异步成功,则执行另一次异步,否则为false

Asynchronous 异步-如果第一次异步成功,则执行另一次异步,否则为false,asynchronous,f#,Asynchronous,F#,对于如何完成这项看似简单的任务,我有点困惑。我正在使用WSDL类型提供程序。我想调用一个请求,如果成功,则调用另一个请求并返回结果: let submitAll answers info = async { let! answerResult = ws.AddAnswersAsync(info.id, answers) |> Async.AwaitIAsyncResult return! if answerResult then ws.SubmitInfo(info

对于如何完成这项看似简单的任务,我有点困惑。我正在使用
WSDL类型提供程序
。我想调用一个请求,如果成功,则调用另一个请求并返回结果:

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
,是否有一种简单的方法使其
异步


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

我问了这个问题,然后马上就想出来了,去想吧!在中查找AsyncChoice或AsyncChoice
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}
  }