Я пытаюсь составить монады в Scala и выполнить несколько запросов к серверу.вот фрагмент кода, который я использую.Я стараюсь не использовать плоскую карту, насколько это возможно, используя только для понимания.есть идеи?Я знаю, как использовать монадные трансформеры, но я не знаю, как составлять несколько монад.кто-нибудь может мне помочь?
for {
session <- getSession(ticker) //IO[Future[Response]]
crumbF = session.flatMap(response => Future(parseCrumb(response.body)))
cookiesF = session.flatMap(response => Future(response.cookies))
crumb = Await.result(crumbF, 5 seconds) // Future[String]
cookies = Await.result(cookiesF, 5 seconds) //Future[Seq[Cookies]]
data <- getData(ticker, startDate, endDate, interval, crumb, cookies.head) // IO[Future[Response]]
stocksF = data.flatMap { response =>
import DefaultBodyReadables._
Future {
StockDf.mapDataToDf(response.body)
}
}
} yield stocksF