【发布时间】:2017-03-31 06:51:46
【问题描述】:
如果我在 10 秒后调用 setTimeOut(),然后执行一组长时间运行的命令,Node.js/JavaScript 是否会等到这些命令完成执行 setTimeOut 中设置的函数? setInterval() 也一样吗?
如果我在代码中同时使用 setTimeOut() 和 setInterval() ,而任务最终可能在同一时间执行,有什么需要注意的吗?
我正在使用 node-cron (https://github.com/kelektiv/node-cron/blob/master/lib/cron.js) 库,我看到它使用了 setTimeOut。我正在尝试使用 setInterval() 添加一些任务。
【问题讨论】:
-
只是想强调 javascript 代码在单线程中执行的事实。你的担心真的很模糊,所以我真的不能说别的。
-
@tcooc 是单线程并不意味着“Node.js/JavaScript 是否等待这些命令完成执行”的答案是“是”
-
@Alejandro,谢谢,但我在那个问题中没有看到任何对 setInterval() 的引用。
-
@user994165 两者的功能基本相同。想象
setInterval是一个setTimeout,它在被调用时调用setTimeout。我投票结束这个问题,因为不清楚你在问什么。
标签: javascript node.js