当不针对浏览器时,如何调用Kotlin中的setTimeout之类的JS函数

new9mtju  于 2023-01-26  发布在  Kotlin
关注(0)|答案(3)|浏览(170)

我是否必须像这样从外部定义它们:

external fun setTimeout(exec: suspend () -> Unit, timout: Int)

或者在标准库中有我可以使用的东西吗?
我不能使用Kotlin.browser.window.setTimeout,因为我想用nodejs运行它。

k0pti3hp

k0pti3hp1#

kotlin-stdlib-js中已经有一个setTimeout函数了,你不需要在外部声明它,用法非常简单:

import kotlin.browser.window

fun main() {
    window.setTimeout(handler = { window.alert("Timed out!") }, timeout = 1000)
}

这将在1秒后提醒您(另一个众所周知的JS函数),正如预期的那样。

vof42yt1

vof42yt12#

它肯定不在stdlib中,我也在做同样的事情,定义我需要的外部函数。

external fun setTimeout(handler: dynamic, timeout: Int = definedExternally, vararg arguments: Any?): Int
omvjsjqw

omvjsjqw3#

你已经

external fun setTimeout(
    callback: () -> Unit,
    ms: Int = definedExternally,
): Timeout

你可以这样使用它:setTimeout({ if(someCondition) doSomething() }, 3000)

相关问题