我如何使一个未来依赖另一个未来。假设我有这样的期货:
def foo1 : Future[String] = ???
def foo2 : Future[String] = ???
def foo3 : Future[String] = ???
def foo4 : Future[String] = ???
我希望foo4依赖于foo3和foo2,而foo3和foo2依赖于foo1。我该怎么写以理解?
答案 0 :(得分:1)
如果您以显示方式创建四个Future
,则所有四个Future
将同时执行:
def foo1 : Future[String] = f1()
def foo2 : Future[String] = f2()
def foo3 : Future[String] = f3()
def foo4 : Future[String] = f4()
如果要使其顺序执行,请执行以下操作:
for {
foo1 <- f1()
foo2 <- f2()
foo3 <- f3()
foo4 <- f4()
} {
// do something with the results
}
一旦Future
中的一个失败,此操作将立即停止执行,与第一个版本不同,它将同时运行所有四个Future
,直至完成。