Вы можете использовать also()
для выполнения дополнительных операций над объектом при возврате самого себя:
Поскольку also()
является встроенной функцией, Kotlin позволяет использовать нелокальные возвраты для выхода из текущей функции из лямбды.
repository!!.getAllByDateForUser(userId, date)
.map { ... }
.also { list ->
if (list.isEmpty())
return xy // exit function (not only lambda)
}
.flatMap { ... }
Конечно, вы можете сделать это в одной строке на цепочку вызовов, если вы предпочитаете этот стиль:
repository!!.getAllByDateForUser(userId, date)
.map { ... }
.also { if (it.isEmpty()) return xy }
.flatMap { ... }