Почему foreach вместо onSuccess для обратных вызовов в Scala? - PullRequest
0 голосов
/ 05 мая 2018

Scala имеет конструкцию foreach для установки обратного вызова в будущем:

myFuture foreach{
 //computation
}

Изначально для этой цели был onSuccess.

onSuccess, кажется, более логичное имя (сделайте это, когда будущее будет завершено). Почему это имя «foreach» тогда? Представляет ли это что-то в контексте обратных вызовов, которых отсутствует onSuccess?

1 Ответ

0 голосов
/ 05 мая 2018

Единственная разница между foreach и onComplete заключается в том, что foreach требует всего функции в качестве аргумента.

onComplete устарел в 2.12.0. Названы причины:

  1. Было слишком много методов обратного вызова, которые по сути делали то же самое. Во избежание путаницы некоторые из них устарели, поэтому легче решить, когда что использовать.
  2. Продвигать for -понимания

Ссылка: Устаревание: onSuccess и onFailure .

Я не уверен, что думать об этой аргументации. Например, в Option существует довольно много избыточных методов, не могли бы мы просто удалить все, кроме одного, и сохранить только fold?

...