F#没有任何自动执行此操作的方法。你真正想要的是创建一个捕获两种不同行为的组合计算。这样做的最好方法是定义一个新的计算
asyncLog
,这可以让你做你需要的两件事。这并不容易,但以下是很好的起点:
该
asyncSeq
计算
展示了如何创建异步序列
ExtCore库
有两个像这样的计算
实际上,您不需要这样做
那
通常在F#中,因为没有那么多的计算表达式要编写。
在您的示例中,您正在使用
async
和
log
。虽然在解释计算表达式如何工作时,日志记录是一个很棒的演示,但我不确定我是否会在实践中使用计算表达式向我的应用程序添加日志记录 - 使用全局记录器对象并直接调用它似乎更容易(但是这真的取决于你的
log
计算在幕后做)。