如何在 Scala 中添加对 Future 的回调?

2024-03-16

我看到一个例子here http://docs.scala-lang.org/overviews/core/futures.html:



val fut = Future { ... // my body function } // my body function starts here
fut onComplete { ... // my callback }
  

看来我可以添加回调after我的身体机能的完成。还被调用吗?无论如何,我更愿意为 future 添加回调before我的函数开始运行。是否有意义 ?我怎样才能做到这一点 ?


该文档对你的第一点非常清楚:

如果注册时未来已经完成 回调,那么回调可以异步执行,或者 在同一线程上顺序执行。

至于您的后一个问题 - 您可以将需要运行的代码作为未来正文的第一行,例如:

def futureWithBefore[T](body: => T, before: => Any) = future {
  before()
  body()
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Scala 中添加对 Future 的回调? 的相关文章

随机推荐

  • GWT 中的 Java 8 支持

    这似乎是一个非常基本的问题 但我到处搜索 发现几乎没有任何地方提到它 所以 我就在这里问一下 目前在 GWT 中支持 Java 8 新语言结构的计划是什么 此外 提议的 Java 8 库的哪些子集将用于客户端模拟 流 API 新的日期 时间
  • 在 C/C++ 中解析二进制消息流

    我正在编写二进制协议 Javad GRIL 协议 的解码器 它由大约一百条消息组成 数据格式如下 struct MsgData uint8 t num float x y z uint8 t elevation 这些字段是 ANSI 编码的
  • 如何在运行时跳过单元测试?

    提前致谢 我们使用 selenium Web 驱动程序进行了一些自动化测试 这些测试非常棒 并且提供了非常好的回归包 问题是现在我们的代码中有功能切换 所以我需要说忽略这些测试 除非该功能切换已打开 关闭 我在谷歌上找不到任何真正的东西 理
  • 用 C 将文本文件中的数字读取到数组中

    我是一个编程菜鸟 所以请耐心等待 我正在尝试将文本文件中的数字读取到数组中 文本文件 somenumbers txt 仅包含 16 个数字 例如 5623125698541159 include
  • Laravel 5:在服务器环境上运行迁移,而不是在本地

    我在 Laravel 5 应用程序中创建了一组简单的数据库迁移 它们在我的本地开发环境中运行良好 现在是时候在我的新生产服务器环境上运行迁移了 我已经配置了数据库连接并部署了应用程序 并且应用程序可以看到数据库 但没有表 因此需要运行迁移
  • 使用分类数据作为 sklearn Logistic 回归中的特征

    我试图了解如何使用分类数据作为特征sklearn linear model s LogisticRegression 我当然知道我需要对其进行编码 我不明白的是如何将编码特征传递给逻辑回归 以便将其作为分类特征进行处理 而不是将其在编码为标
  • Vim swp 文件干扰存储库 vimdiff

    我的设置是使用 vim 特别是图形模式下的 MacVim 编辑源文件 然后使用 vimdiff 再次在图形模式下 进行 mercurial 存储库差异 有时 当我进行 diff 时 vim 会给出错误 交换文件 nn src imm mod
  • 将 SharedPreferences 传递给 doInBackground()

    我试图将 SharedPreferences 首选项作为参数传递给 AsyncTask 中的 doInBackground 函数 我已经将一个字符串 url 传递给它 所以我需要将首选项也作为字符串传递 我可以简单地使用 prefs toS
  • Python tkinter 通过单选按钮输入小部件状态切换

    一个简单的问题 对于像我这样的 tkinter 新手来说不是那么简单 我正在构建一个 GUI 我想要有两个单选按钮来驱动 Entry 小部件的状态 启用或禁用 用户将在其中输入数据 当按下第一个单选按钮时 我希望禁用该条目 当按下第二个单选
  • 春季侦探行李传播未传播/工作

    我们当前使用的是 sleuth 2 2 3 RELEASE 我们看不到 http 标头中传递的 userId 字段没有传播 下面是我们的代码 BaggageField REQUEST ID BaggageField create x vca
  • 找不到 ProfileCommon

    我在我的代码中收到错误 ProfileCommon 无法找到 我不知道如何修复该错误 我使用 system Web Profile 放置命名空间 但这里仍然出现错误 有人可以帮忙怎么做吗 如果您知道请帮助我 谢谢 public partia
  • CSS Flexbox - 根据屏幕尺寸组织弹性项目

    我有一个弹性项目容器 我试图根据屏幕尺寸以不同的布局组织不同数量的弹性项目 例如 在桌面上 我想要有 4 个容器 每个容器有 2 个项目 布局在 2x4 网格中 每个单元格为 1x2 我似乎无法理解的是纯粹使用 Flexbox 在平板电脑上
  • gnuplot:在 y 轴上绘制 4 列的文件

    我有一个包含 4 个数字 最小值 最大值 平均值 标准差 的文件 我想用 gnuplot 绘制它 Sample 24 31 29 0909 2 57451 12 31 27 2727 5 24129 14 31 26 1818 5 0419
  • Python 多重处理是否从父级复制所有模块?

    我注意到我可以访问子进程中位于子进程函数 目标之外的函数和模块 所以我想知道当我在 python 中创建子进程时它是否会复制当前进程中的所有内容 为什么我可以访问子目标之外的函数和导入的模块 from multiprocessing imp
  • 测试时如何访问request.user?

    我刚刚从 Django 1 3 1 迁移到 Django 1 4 这样做之后 我的大量测试开始出现这些错误 Traceback most recent call last File Volumes Data ADay Website Bac
  • 为什么使用 Spark Direct Stream 从 kafka 接收的元组的第一个成员为 null

    当使用KafkaUtils createDirectStream从kafka读取消息时 Tuple2的v1 1成员为null KafkaUtils createDirectStream streamingContext String cla
  • 在 Vim 中滚动长换行

    Problem 在写散文时 使用时滚动会以意想不到的方式工作j向下滚动 当我在文本的两个长段落 vim 中的换行 之间滚动时 使用j 当到达下一个长段落 行 时 文本从屏幕底部 跳 到顶部 将段落 行 的第一个单词与屏幕顶部对齐 参见下面的
  • 使用 dojo 修改 div 的文本

    我有一个 dojo 小部件 对于小部件 我有 2 个文件 A js 和 A html 现在在 A html 中我有类似的东西 div div 上面的行是小部件模板中的一行 它是一个普通的 html div 现在在A js中我对服务器进行异步
  • 如何从 VS2015 瞄准 Mono 框架?

    我想在安装了 mono 的 Linux 上部署 ASP NET Web 应用程序 据我所知 Mono 是一个类似于 DNX 4 5 1 或 DNX Core 5 0 的目标平台 因此 我需要以某种方式将其添加到我的项目中的目标平台 以针对它
  • 如何在 Scala 中添加对 Future 的回调?

    我看到一个例子here http docs scala lang org overviews core futures html val fut Future my body function my body function starts