У меня есть код вроде
//all data have different types
val data1Future = loadData1(params)
val data2Future = loadData2(params)
val data3Future = loadData3(params)
def saveResult(rez): Future[_] = ???
data1Future.flatMap { data1 =>
data2Future.flatMap { data2 =>
data3Future.flatMap { data3 =>
//do some computation
//several rows and several vals
val rez = ???
saveResult(rez)
}
}
}
Но это немного некрасиво :) К сожалению, я не могу использовать для понимания, так как мне нужно что-то вроде "flatYield"
for {
data1 <- data1Future
data1 <- data1Future
data1 <- data1Future
} flatYield {
//do some computation
//several rows and several vals
val rez = data1 + data2 + data3
saveResult(rez)
}
Вы знаете такой элегантный паттерн, как "для понимания", но с flatMap вместо map в конце цепочки?