在某些情况下,我返回一个空的Source。在运行它之前,调用者有什么方法可以检查返回的Source是否为空?
答案 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
是否为空的唯一方法是运行它。