首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >等待通用任务并返回结果

等待通用任务并返回结果
EN

Stack Overflow用户
提问于 2021-03-12 21:51:58
回答 1查看 71关注 0票数 0

我有功能电话

代码语言:javascript
运行
复制
let result = session.Query<Domain.CustomerReadModel>().ToListAsync()

返回Task<Collections.Generic.IReadOnlyList<Domain.CustomerReadModel>>

如何在F#中正确地“等待”此任务?

我试过了

代码语言:javascript
运行
复制
async {
   session.Query<Domain.CustomerReadModel>().ToListAsync() |> ignore
}

以及

代码语言:javascript
运行
复制
let result = session.Query<Domain.CustomerReadModel>().ToListAsync()
  |> Async.AwaitTask
  |> Async.RunSynchronously

这似乎是编译的,但我不能使用结果并返回它:

代码语言:javascript
运行
复制
session.Query<Domain.CustomerReadModel>().ToListAsync()
    |> Async.AwaitTask
    |> Async.RunSynchronously
EN

Stack Overflow用户

回答已采纳

发布于 2021-03-12 21:59:50

Async.AwaitTask接受该任务,将其封装到async计算中,并返回该计算。一旦您拥有了它,您就可以与let!do!return!一起使用它,就像任何其他async计算一样。

代码语言:javascript
运行
复制
async {
  let queryAsFsharpAsync = session.Query<Domain.CustomerReadModel>().ToListAsync() |> Async.AwaitTask
  let! result = queryAsFsharpAsync 
  ...
}

或者没有给出计算的名称:

代码语言:javascript
运行
复制
async {
  let! result = session.Query<Domain.CustomerReadModel>().ToListAsync() |> Async.AwaitTask
  ...
}
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66607688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档