我正在使用 akka 数据流,我想知道是否有一种方法可以使特定的代码块等待未来的完成,而无需明确使用该未来的值。
实际用例是我有一个文件,我希望在特定的未来完成时删除该文件,但不是在此之前。这是一个粗略的例子。首先想象我有这个服务:
trait ASync {
def pull: Future[File]
def process(input : File): Future[File]
def push(input : File): Future[URI]
}
我有一个我想以非阻塞方式运行的工作流程:
val uriFuture = flow {
val pulledFile = async.pull(uri)
val processedile = async.process(pulledFile())
val storedUri = async.push(processedFile())
// I'd like the following line executed only after storedUri is completed,
// not as soon as pulled file is ready.
pulledFile().delete()
storedUri()
}