代码之家  ›  专栏  ›  技术社区  ›  Mandroid

为什么在Scala中对回调使用foreach而不是onSuccess?

  •  0
  • Mandroid  · 技术社区  · 6 年前

    Scala具有foreach构造,可在将来安装回调:

    myFuture foreach{
     //computation
    }
    

    最初,出于同样的目的,没有成功。

    onSuccess似乎是一个更好的逻辑名称(在未来完成时这样做)。那为什么叫“foreach”?它是否表示onSuccess缺少的回调上下文中的某些内容?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Andrey Tyukin    6 年前

    唯一的区别是 foreach onComplete 似乎是这样 foreach公司 需要total函数作为参数。

    这个 未完成 已在中弃用 2.12.0 。指定的原因是:

    1. 有太多的回调方法基本上都是这样做的。为了避免混淆,其中一些已被弃用,因此更容易决定何时使用什么。
    2. 促进 for -理解

    链接: Deprecations: onSuccess and onFailure

    我不知道该怎么看待这个论点。例如,上有许多冗余方法 Option ,我们不能只删除一个,而只保留一个吗 fold ?