尝试在播放2.0.4上了解枚举器 - 我想将一个枚举器与另一个枚举器交错,但只有第一个枚举器的长度(独占)。 所以:
Enumerator("hello", "world") -> "hello" ", " "world"
Enumerator("one", "two", "three") -> "one" ", " "two" ", " "three"
内置交错包括在第一个枚举器的末尾之后,直到第二个枚举器结束。
val commas : Enumerator[String] = {
Enumerator(", ", ", ", ", ")
}
val words : Enumerator[String] = {
Enumerator("hello", "world!")
}
Ok.stream(words interleave commas andThen Enumerator.eof)
产生“hello,world,”而不是“hello,world”
非常感谢!
答案 0 :(得分:0)
Enumerators
通常在被消费之前被处理,所以在你的场景中,结果是预期的,因为一个枚举器被完成后,另一个的剩余部分被处理。
您似乎需要一个Iteratee
来处理输出并相应地过滤。您可以在documentation中找到一些示例。
另一种可能的方法是使用Enumeratee
(参见documentation)来转换交错的输出。