[英]How to extract value from Scala cats IO
我需要從 ioArray 中獲取 Array[Byte] 值,即 IO[Array[Byte]] // IO 來自 cats 庫
object MyTransactionInputApp extends App{
val ioArray : IO[Array[Byte]] = generateKryoBinary()
val i : Array[Byte] = ioArray.unsafeRunSync();
println(i)
def generateKryoBinaryIO(transaction: Transaction): IO[Array[Byte]] = {
KryoSerializer
.forAsync[IO](kryoRegistrar)
.use { implicit kryo =>
transaction.toBinary.liftTo[IO]
}
}
def generateKryoBinary(): IO[Array[Byte]] = {
val transaction = new Transaction(Hash(""),"","","","","")
val ioArray = generateKryoBinaryIO(transaction);
return ioArray
}
}
我試過下面的,但沒有工作
val i : Array[Byte] = for {
array <- ioArray
} yield array
如果您剛開始使用 cats-effect,我建議您閱讀運行cats.effect.IOApp
的 cats.effect.IOApp 。
否則簡單的解決方案是:
import cats.effect.unsafe.implicits.global
ioArray.unsafeRunSync()
Future
一起工作:import cats.effect.unsafe.implicits.global
ioArray.unsafeToFuture()
你能給我們更多關於你的申請的背景嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.