Я использую WSClient
, чтобы сделать запросы на отдых.Каждый запрос возвращает Future
.
, в результате мне нужно сделать запрос 1 и получить некоторые данные.Тогда мне нужно сделать запрос 2 с данными из результата запроса 1 .Затем мне нужно сделать запрос 3 с данными из результата запроса 2 .и так далее
в моем коде это выглядит как
def wsChain(data: Data): Future[NewData] = {
getOne(data).flatMap(data2 => {
getTwo(data2).flatMap(data3 => {
getThree(data3).flatMap(data4 => {
getFour(data4).map(result => foo(result))
})
})
})
}
Это очень примитивный пример без каких-либо изменений ответов и запросов.но я думаю, что даже это трудно читать.Я сейчас о Await
для Future
, но это против паттерна
Может быть, я смогу сделать это более красиво?Без N внутренних функций.