Akka Stream:哪一个更好 - 扫描还是scanAsync?

时间:2018-03-31 18:24:49

标签: scala akka akka-stream

我是Akka Stream的新手,如果我问任何愚蠢的问题,请道歉。

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

现在,我怀疑是:

  1. 他们之间有什么区别?和,
  2. 哪一个更好用?

1 个答案:

答案 0 :(得分:2)

  1. 它们之间的主要区别在于给定函数f的结果是不同的。在 scanAsync 的情况下,f函数的输出值为 Future 。因此,只要 Future 完成,下一个计算就会开始。但是,当使用扫描计算下一个值时,将在计算当前值后立即开始计算。
  2. 一般答案:这取决于。但是这里有一些建议:当下一个值的计算仅依赖于CPU并且没有临时磁盘/网络读/写时,您应该使用扫描,否则使用 scanAsync
  3. 希望它有所帮助!!!