Есть ли более четкий способ выражения следующего шаблона:
def getUser(id: String): Option[User] = ???
getUser("12345").map { user =>
someSideEffect(user)
user
}
Обратите внимание, как заданный функтор мы сопоставляем с функцией тождества, но также применяем функцию побочного эффекта к помещенному в коробку значению.
Future.andThen
делает именно это:
Применяет побочную функцию к результату этого будущего и возвращает новое будущее с результатом этого будущего.
Есть что-то вроде Future.andThen
но в общем случае для любого функтора?