如何检测空的Akka源

时间:2019-04-16 02:52:37

标签: scala akka akka-stream

在某些情况下,我返回一个空的Source。在运行它之前,调用者有什么方法可以检查返回的Source是否为空?

2 个答案:

答案 0 :(得分:1)

  

来源   一个处理阶段只有一个输出,只要下游处理阶段准备好接收它们,就会发出数据元素。

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

因此,据我了解,如果不运行源代码,则无法检查源代码是否为空。 请随时评论您的想法

我认为达到要求的一种方法是

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

答案 1 :(得分:1)

  

调用者在运行之前是否可以检查返回的Source是否为空?

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