gpt4 book ai didi

scala - 如何从 Future[Iterator] 创建源?

转载 作者:行者123 更新时间:2023-12-04 19:50:02 24 4
gpt4 key购买 nike

我有一个 Future[Iterator]。我想将此迭代器提供给我的 Stream。在这里,我仍然想像使用 Source.fromIterator 一样从 Iterator 构造一个 Source。

但是,由于 Future,我不能在这里使用 Source.fromIterator

也许我可以使用 Source.fromFuture 但是当我尝试使用它时,在我的情况下,它似乎实际上并没有从 Iterator 创建一个 Source。来自文档:

/**
* Starts a new `Source` from the given `Future`. The stream will consist of
* one element when the `Future` is completed with a successful value, which
* may happen before or after materializing the `Flow`.
* The stream terminates with a failure if the `Future` is completed with a failure.
*/
def fromFuture[T](future: Future[T]): Source[T, NotUsed] =
fromGraph(new FutureSource(future))

最佳答案

您可以结合使用 Source.fromFutureflatMapConcatSource.fromIterator。例如:

val futIter = Future(Iterator(1, 2, 3))

val source: Source[Int, _] =
Source.fromFuture(futIter).flatMapConcat(iter => Source.fromIterator(() => iter))

关于scala - 如何从 Future[Iterator] 创建源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47496363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com