Donny
07/12/2023, 8:53 PMimport kotlinx.coroutines.*
import kotlin.coroutines.CoroutineContext
import kotlin.js.JsExport
sealed class DeferredClass(val successful: Boolean)
@JsExport
object SingletonWithCoroutine : CoroutineScope {
@JsExport.Ignore
internal val job = Job()
@JsExport.Ignore
private const val NUM_LOAD_WORKERS = 8
@JsExport.Ignore
override val coroutineContext: CoroutineContext
get() = job
@JsExport.Ignore
suspend fun testSuspend(assetPath: String): Unit {
val deferred = Deferred()
val loaded = deferred.awaiting.await()
}
@JsExport.Ignore
private class Deferred(val awaiting: CompletableDeferred<DeferredClass> = CompletableDeferred(job))
@JsExport.Ignore
var test = myFun()
private fun myFun() {
throw Exception("This should only be thrown the first time this is referenced")
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="node_modules/singleton/kotlin-kotlin-stdlib-js-ir.js"></script>
<script src="node_modules/singleton/88b0986a7186d029-atomicfu-js-ir.js"></script>
<script src="node_modules/singleton/kotlinx.coroutines-kotlinx-coroutines-core-js-ir.js"></script>
<script src="node_modules/singleton/singleton.js"></script>
</head>
<body>
</body>
</html>
Artem Kobzar
07/16/2023, 9:44 PMArtem Kobzar
07/16/2023, 9:44 PMDonny
07/17/2023, 12:07 AMDonny
07/17/2023, 12:07 AMDonny
07/17/2023, 12:07 AMDonny
07/17/2023, 12:14 AMDonny
07/17/2023, 12:16 AMArtem Kobzar
07/17/2023, 9:20 AMDonny
07/17/2023, 6:06 PMArtem Kobzar
07/18/2023, 10:52 AMDonny
07/18/2023, 9:03 PMArtem Kobzar
07/19/2023, 9:36 AMDonny
07/19/2023, 2:56 PMDonny
07/24/2023, 2:06 PMArtem Kobzar
07/24/2023, 2:44 PM