在某些边缘情况下,我返回一个空的Source。调用者有没有办法在运行之前检查返回的Source是否为空?
源只有一个输出的处理阶段,每当下游处理阶段准备好接收它们时发出数据元素。
根据定义,我们无法知道源的元素,除非有下游接收。
所以根据我的理解,如果没有运行它,我们就无法检查源是否为空。请随时评论您的想法
我认为实现这一要求的一种方法是
val x: Future[Boolean] = Source.empty.runWith(Sink.seq).transform{
case Success(lst) => Success(lst.isEmpty)
case Failure(_) => Success(true)
}
有没有办法让调用者在运行之前检查返回的
Source
是否为空?
不。确定Source
是否为空的唯一方法是运行它。