当前位置: 首页 > 知识库问答 >
问题:

我怎样才能把未来的未来变成一个未来的物体?

唐睿
2023-03-14

环境:Akka 2.1,scala版本2.10。M6,JDK 1.7,u5

现在是我的问题:我有:

future1 = Futures.future(new Callable<Future<object>>(){...});
future2 = ? extends Object;
Future.sequence(future1, future2).onComplete(...)

现在在第一行中,我有一个对象的未来,有没有办法在不阻塞当前线程的情况下将其转换为未来?

akka有什么方法吗?据我所知,我还没有找到...第一次发帖....抱歉,格式和组织不正确...:~P

共有3个答案

甄云
2023-03-14

您可以创建其他任务

Futures.future(new Runnable(){
     // wait for future1
     // wait for future2
     // do something with the results.
});

或合并任务

Futures.future(new Runnable(){
     // do the work future2 would have done.
     // wait for future1
     // do something with the results.
});
华子航
2023-03-14

注意:自从Viktor Klang在2012年回答以来,他最近(2016年3月)在他的博客中为scala 2.12添加了:

您是我们中的一员已经厌倦了旧的flatMap(身份)样板来取消嵌套的未来,例如:

val future: Future[Future[X]] = ???
val flattenedFuture /*: Future[X] */ = future.flatMap(identity)

那我有好消息告诉你!从Scala 2.12开始< br > < code > Scala . concurrent . future 将有一个flatten-method,其签名如下:

def flatten[S](implicit ev: T <:< Future[S]): Future[S]

允许你写:

val future: Future[Future[X]] = ???
val flattenedFuture /*: Future[X] */ = future.flatten
程和煦
2023-03-14

简答(英文):flatMap dat sh!t

简短的回答(Scala):

flatMap(identity)

最短的答案:(Scala 2.12):

flatten

长答案(爪哇):

flatMap(new Mapper<Future<X>>,Future<X>>() {
  @Override public Future<X> apply(final Future<X> f) { return f; }
})
 类似资料:
  • 问题内容: 信封:Akka 2.1,scala版本2.10.M6,JDK 1.7,u5 现在是我的问题:我有: 现在在第一行中,我有一个Future对象的Future,有什么方法可以在不阻塞当前线程的情况下将其转换为Future? Akka有什么方法吗?据我检查,我还没有发现…第一次发帖....不好意思的格式和组织…:〜P 问题答案: 简短答案(英语):flatMap dat sh!t 较短的答案

  • 问题内容: 我尽力而为,但没有找到任何文章和博客可以清楚地比较和,并且提供了很好的分析。 因此,如果任何人都可以向我解释或指向这样的博客或文章,那对我来说真的非常好。 问题答案: 无论 ListenableFuture 和 CompletableFuture 有超过它的父类的优势 未来 通过允许呼叫者在这样或那样的回调“注册”当异步动作已经完成被调用。 使用 Future, 您可以执行以下操作:

  • 1.自我介绍 2.项目介绍、项目负责的模块、项目遇到的问题、解决方案、项目是否上线 3.金额相关问题 4.Treadloca 的理解 应用 5.线程安全相关问题 6.arraylist的原理、是否线程安全、arraylist扩容机制 7.hashmap的理解和数据结构 8.hashmap存取元素的过程 9.创建线程的四种方式、start和run的区别 10.常用的锁 11.数据库的三大范式 12.

  • left join 和 inner join的区别 线程池的调用顺序 Spring循环依赖和三级缓存 AOP机制 索引 最左前缀原则的失效 ABCD 有>号 范围查询后会失效 MVCC的实现 可不可以实习

  • 我试图把Flink和德鲁伊联系起来。 然而,我不知道如何正确地做到这一点。 在此Flink留档中,"bootstrap.servers"设置为"localhost:9092"。 这是否意味着我可以使用Apache Kafka摄取直接连接,因为下面设置了示例主管规范? 除了Flink,我还需要管理Kafka吗?或者我应该做其他事情来连接Flink和德鲁伊?

  • 我有一个Scala future,它调用一个api并返回future,如果结果不正确,那么另一个api调用将与第一个future的结果一起提交并作为future返回。 这是我目前为止所拥有的。 但是如果我访问fut2结果,它会给出这样的结果: 有没有一种方法,我可以选择返回fot2,如果fot1的结果是不准确的? 编辑:第二个未来必须使用第一个未来来继续API调用。这就是我到目前为止所拥有的。