如何检测空Akka源

问题描述 投票:0回答:2

在某些边缘情况下,我返回一个空的Source。调用者有没有办法在运行之前检查返回的Source是否为空?

scala akka akka-stream
2个回答
1
投票

源只有一个输出的处理阶段,每当下游处理阶段准备好接收它们时发出数据元素。

根据定义,我们无法知道源的元素,除非有下游接收。

所以根据我的理解,如果没有运行它,我们就无法检查源是否为空。请随时评论您的想法

我认为实现这一要求的一种方法是

val x: Future[Boolean] = Source.empty.runWith(Sink.seq).transform{
   case Success(lst) => Success(lst.isEmpty)
   case Failure(_) => Success(true)
}

1
投票

有没有办法让调用者在运行之前检查返回的Source是否为空?

不。确定Source是否为空的唯一方法是运行它。

© www.soinside.com 2019 - 2024. All rights reserved.