【发布时间】:2015-11-01 06:57:38
【问题描述】:
我有如下接口方法:
Task<string[]> GetBlobsFromContainer(string containerName);
及其在 C# 中的实现:
var container = await _containerClient.GetContainer(containerName);
var tasks = container.ListBlobs()
.Cast<CloudBlockBlob>()
.Select(b => b.DownloadTextAsync());
return await Task.WhenAll(tasks);
当我尝试在 F# 中重写它时:
member this.GetBlobsFromContainer(containerName : string) : Task<string[]> =
let task = async {
let! container = containerClient.GetContainer(containerName) |> Async.AwaitTask
return container.ListBlobs()
|> Seq.cast<CloudBlockBlob>
|> Seq.map (fun b -> b.DownloadTextAsync())
|> ??
}
task |> ??
我被最后几行卡住了。
如何正确从F#返回Task<string[]>?
【问题讨论】:
标签: f# async-await task-parallel-library c#-to-f#