Nim中的异步代码(javascript的setTimeout等效)

use*_*271 4 nim-lang

使用setTimeout这个javascript程序的nim等价物是什么?请不要破解sleep(1000)并保持代码异步.

setTimeout(
    function()
    {
        console.log("Hello world")
    },
    1000
)
Run Code Online (Sandbox Code Playgroud)

dom*_*m96 5

asyncdispatch模块定义了一个sleepAsync函数:https://nim-lang.org/docs/asyncdispatch.html#sleepAsync,int

您可以使用它来创建setTimeout等效项.

  • 值得一提的是,setTimeout不是一个语言原语,而是一个运行时原语,由您正在使用的任何runloop实现提供.例如,如果您正在编写命令行工具(或服务器),那么Nim的asyncdispatch可能是您的选择,就像@ dom96所说,您可以使用sleepAsync.如果您正在编写GUI应用程序,则计时器应由您的基础平台SDK提供. (2认同)