Saya mencoba membuat monad di Scala dengan melakukan beberapa permintaan ke server. berikut cuplikan kode yang saya gunakan. Saya mencoba untuk tidak menggunakan flatmap mungkin hanya digunakan untuk pemahaman juga. ada ide? Saya tahu menggunakan Monad Transformers, tapi saya tidak tahu cara membuat banyak monad. adakah yang bisa membantu saya?
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
Future
denganOption
di dalamnya, atau apakah Anda mencoba bekerja dengan monad berbeda dalam satu pemahamanfor
? - person Grisha   schedule 23.10.2018for
adalah cara yang tepat untuk menggunakan kode ini. Semua tugas dan pernyataanAwait
tersebut akan lebih jelas jika ditulis sebagai kode biasa. Pada akhirnya ini hanyalahmap
yang bersarang diflatMap
dan mungkin akan terlihat lebih jelas jika ditulis seperti itu. Dan mengapa memanggilflatMap
dan membungkus hasilnya denganFuture
daripada hanya memanggilmap
? - person Tim   schedule 23.10.2018