使用Future.map Combinator时的Future(<not completed =“”>)

时间:2017-12-05 03:02:04

标签: scala future

使用"/"(controller:"home", action:"isUserLoggedIn") 处理第一个Future.map后,第二个从属FutureFuture被回拨后始终为Future(<not completed>)。使用两个Future.onComplete的其他构造从未表现出这种行为。

有人可以解释为什么Future被调用,虽然未来显然不完整吗?

使用Scala 2.12.3。如果需要,剪切并粘贴以下内容以评估此问题。

Future.onComplete

1 个答案:

答案 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
}