JVM cps转换

时间:2018-11-09 07:07:10

标签: kotlinx.coroutines ktor

在尝试ktor时,我尝试执行以下操作:

fun main() {
    embeddedServer(Netty, port = 8080) {
        routing {
            get("/") {
                call.respondTextWriter(ContentType.Text.Html) {
                    appendHTML().html {
                        head {}
                        body {
                            pre {
                                (1..10).forEach {
                                    text("counting: $it\n")
                                    flush()
                                    // delay(1000)   <-   I wish...
                                    Thread.sleep(50) // that works
                                }
                            }
                        }
                    }
                }
            }
        }
    }.start()
}

很遗憾,kotlinx.html库不可挂起。延迟方法调用无法编译并出现此错误:只能在协程体内调用悬浮函数。

所有这些都根据文档进行并且很有意义。如果可能的话,那太好了。

一个可能的解决方案是一种在字节码级别将库转换为CPS的工具。是否存在这样的工具?

0 个答案:

没有答案