使用"/"(controller:"home", action:"isUserLoggedIn")
处理第一个Future.map
后,第二个从属Future
在Future
被回拨后始终为Future(<not completed>)
。使用两个Future.onComplete
的其他构造从未表现出这种行为。
有人可以解释为什么Future
被调用,虽然未来显然不完整吗?
使用Scala 2.12.3。如果需要,剪切并粘贴以下内容以评估此问题。
Future.onComplete
答案 0 :(得分:0)
我并不是100%确定这里所期望的行为是什么,但我会在这里尝试flatMap,你真的想要完成我认为的整个未来链。如果这是问题,那么你只是完成了外在的未来,这是我怀疑的,因为当你使用它(它正在工作)时它和flatMap一样。
10 Future work start: 791
10 Future work stop: 791
11 Future work start: 819
11 Future work stop: 819
11 j: 819
1 Success: 791
1 Success: 819
1 All done.
我会在这里将map更改为flatMap,因为createRegisteredFuture会创建一个未来。
val f2 = f1.flatMap {
i => createRegisteredFuture
}