环境: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
您可以创建其他任务
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.
});
注意:自从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
简答(英文):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的实现 可不可以实习
我有一个Scala future,它调用一个api并返回future,如果结果不正确,那么另一个api调用将与第一个future的结果一起提交并作为future返回。 这是我目前为止所拥有的。 但是如果我访问fut2结果,它会给出这样的结果: 有没有一种方法,我可以选择返回fot2,如果fot1的结果是不准确的? 编辑:第二个未来必须使用第一个未来来继续API调用。这就是我到目前为止所拥有的。
好吧,我想问题已经在标题中完成了。没什么大不了的,但我只是想知道。我有一个返回正确值或错误代码枚举项的方法。例如这样的东西: 其中返回一个Future,而只是修改数据。 现在我已经直观地编写了< code>Future[_],因为返回值是灵活的。但是在查看其他库时,我看到了< code>Future[Any]的用法。当你在函数的返回中使用匹配用例来检查它是什么数据时,这似乎也是合乎逻辑的。 例如,