为什么在 Scala 中使用 foreach 而不是 onSuccess 进行回调?
Why foreach instead of onSuccess for callbacks in Scala?
Scala 具有用于在 Future 上安装回调的 foreach 构造:
myFuture foreach{
//computation
}
最初为了同样的目的有 onSuccess。
onSuccess 似乎是一个更符合逻辑的名称(在 future 完成时执行此操作)。为什么取这个名字'foreach'呢?它是否代表回调上下文中缺少 onSuccess 的内容?
foreach
和 onComplete
之间的唯一区别似乎是 foreach
需要总函数作为参数。
onComplete
在 2.12.0
中被弃用。命名的原因是:
- 本质上做同样事情的回调方法太多了。为了避免混淆,其中一些已被弃用,因此更容易决定何时使用什么。
- 提升
for
-理解力
Link: Deprecations: onSuccess and onFailure.
我不确定如何看待这个论点。比如Option
上有很多多余的方法,我们不就只去掉一个,只保留fold
吗?
Scala 具有用于在 Future 上安装回调的 foreach 构造:
myFuture foreach{
//computation
}
最初为了同样的目的有 onSuccess。
onSuccess 似乎是一个更符合逻辑的名称(在 future 完成时执行此操作)。为什么取这个名字'foreach'呢?它是否代表回调上下文中缺少 onSuccess 的内容?
foreach
和 onComplete
之间的唯一区别似乎是 foreach
需要总函数作为参数。
onComplete
在 2.12.0
中被弃用。命名的原因是:
- 本质上做同样事情的回调方法太多了。为了避免混淆,其中一些已被弃用,因此更容易决定何时使用什么。
- 提升
for
-理解力
Link: Deprecations: onSuccess and onFailure.
我不确定如何看待这个论点。比如Option
上有很多多余的方法,我们不就只去掉一个,只保留fold
吗?