Akka Stream:哪个更好 - scan 还是 scanAsync?

Akka Stream: Which one is better - scan or scanAsync?

我是 Akka Stream 的新手,很抱歉,如果我问了任何愚蠢的问题。

我正在经历 Akka Stream QuickStart guide。而且我找到了scan操作。文档说它类似于 fold 但不是终端操作。我得到了那部分,但是当我找到 scanAsync 时,文档说了同样的事情,除了一件事,即它类似于 scan 但具有异步功能。

现在,我的疑惑是:

  1. 它们有什么区别?并且,
  2. 哪个更好用?
  1. 它们之间的主要区别在于给定函数 f 的结果不同。 scanAsync情况下f函数的输出值为Future。因此,下一次计算将在 Future 完成后立即开始。但是,当使用 scan 时,下一个值的计算将在当前值的计算之后立即开始。
  2. 一般答案:视情况而定。但是这里有一些建议:当下一个值的计算仅取决于 CPU 并且没有临时 disk/network read/writes 时,您应该使用 scan,并使用 scanAsync 否则

希望对您有所帮助!!!