我正在用 Kotlin JS 编写一个 WebGL 应用程序,因此我需要获取 .obj 文件和着色器等资源。我想通过 HTTP 请求来执行此操作,但遇到了问题。
我目前正在尝试通过 JS 的 fetch()
API 来执行此操作。问题是这显然是异步的,并且获取资源需要在渲染循环开始之前完成(即获取资源是初始化)。
我真的很难让它同步工作。也就是说,我的程序在获取着色器和 .obj 文件之前不应继续加载缓冲区和主绘制循环。我怎样才能让它在 Kotlin JS 中工作? fetch()
不是执行此操作的正确方法吗?
最佳答案
我不确定 fetch()
,但 Ktor 附带了一个多平台 HTTP 库,您可以开箱即用。可以找到here .
此类调用的示例如下所示:
suspend fun sequentialRequests() {
val client = HttpClient()
// Get the content of an URL.
val firstBytes = client.get<ByteArray>("https://127.0.0.1:8080/a")
// Once the previous request is done, get the content of an URL.
val secondBytes = client.get<ByteArray>("https://127.0.0.1:8080/b")
client.close()
}
关于javascript - 等待 Kotlin JS 中的 fetch() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62744529/