假设我有一个异步数据源:
let getData() = async { return [ 3.14; 2.72 ] }
我可以使用let!
一个临时标签来调用它:
let showData1() = async {
let! data = getData()
data
|> Seq.iter (printfn "%A")
}
或者,我可以使用和管道调用它(效率低下!)Async.RunSynchronously
,并且没有临时标签:
let showData2() = async {
getData()
|> Async.RunSynchronously
|> Seq.iter (printfn "%A")
}
我喜欢的语法,showData2
但知道调用会Async.RunSynchronously
占用调用线程。
是否在某处定义了语法、运算符或函数,允许我将 an 传递Async<'T>
到接受的函数中'T
?