在尝试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的工具。是否存在这样的工具?