Actualmente estoy tratando de usar IPFS con Kotlin/JS, aunque mi problema no es específico de eso. Las ipfs.cat() e ipfs.get() devuelven un AsyncGenerator y no estoy seguro de cómo iterarlo con Kotlin (ni siquiera estoy seguro de qué tipo representaría mejor un AsyncIterable en kotlin)
El siguiente código es una versión mínima de lo que estoy tratando de hacer, aunque no he probado el código como se muestra a continuación. Falla con una ClassCastException ya que el ciclo for es fundamentalmente incorrecto, pero no sé con qué debo reemplazarlo.
Archivo1:
@file:JsModule("ipfs-core") @file:JsNonModule import kotlin.js.Promise @JsName("create") external fun create(config: Any = definedExternally): Promise<dynamic>Archivo2:
create().then { ipfs: dynamic -> ipfs.id().then { id: dynamic -> myId = id.id as String println(JSON.stringify(id)) } val result: dynamic = ipfs.cat("bafkreihapp6racx2xf5gwnrgtsr56r37kazui3jvzzmot2nx2t6h6g2oom") // result is an AsyncGenerator // below fails with ClassCastException for (element: dynamic in result){ println(element) } }