Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滴答声的正确定义是什么?_Javascript_Node.js - Fatal编程技术网

Javascript 滴答声的正确定义是什么?

Javascript 滴答声的正确定义是什么?,javascript,node.js,Javascript,Node.js,我在javascript和node.js事件循环中看到了“tick”的不同定义 有人说这是贯穿所有阶段的1次迭代 事件循环的一部分 有人说一个阶段和另一个阶段之间的过渡 另一个是滴答声 有人说这是一个事件(或所有事件)的排队 事件)从“事件循环队列”中,我了解该节点的 事件循环的每个阶段都有一个队列,而不仅仅是一个队列。(在 除了其他队列“微任务队列”和“下一个勾号 队列“) 因此,这让我对“滴答声”的定义、它的确切含义以及有多少队列感到困惑。滴答声,根据中最好的描述 process.nex

我在javascript和node.js事件循环中看到了“tick”的不同定义

  • 有人说这是贯穿所有阶段的1次迭代 事件循环的一部分
  • 有人说一个阶段和另一个阶段之间的过渡 另一个是滴答声
  • 有人说这是一个事件(或所有事件)的排队 事件)从“事件循环队列”中,我了解该节点的 事件循环的每个阶段都有一个队列,而不仅仅是一个队列。(在 除了其他队列“微任务队列”和“下一个勾号 队列“)
因此,这让我对“滴答声”的定义、它的确切含义以及有多少队列感到困惑。

滴答声,根据中最好的描述

process.nextTick()与setImmediate()的比较 就用户而言,我们有两个电话是相似的,但他们的名字令人困惑

  • process.nextTick()
    在同一阶段立即启动
  • setImmediate()
    在以下迭代或事件循环的'tick'上激发
从本质上讲,这些名字应该互换
process.nextTick()
setImmediate()
更直接地激发,但这是过去的产物,不太可能改变。进行此切换将破坏npm上的大部分包。每天都有更多的新模块被添加,这意味着我们等待的每一天都会发生更多的潜在故障。虽然它们令人困惑,但名称本身不会改变

所以,对我来说,这意味着NodeJS定义了一个记号,表示一次通过所有事件循环


老实说,这可能不值得争论。如果你正在与某人进行辩论,你可以向他们展示这份文件,但如果他们仍然不相信,请继续,这只是一个词。

据我所知,这是一个非常复杂的话题,也许可以帮助你。勾号只是一个词。与编程无关。你是对的,没有意义的是这个过程。nextTick的意思是(在下一阶段之前)而不是(在当前迭代的所有阶段之后的下一个完整迭代之前)。@YoussefMohamed-是的。他们明确承认,命名很差,会导致混乱。但还有一点很重要,这里说setImmediate会在下一次迭代中触发(勾选),而我们知道setImmediate会在轮询阶段后的下一个阶段触发,而不是下一次迭代。。那么,这是否意味着循环的迭代在这里意味着一个阶段?@YoussefMohamed-事件循环有两个阶段。使用
setImmediate
check
阶段触发的回调计划。听起来,无论您处于事件循环的哪个阶段,如果您使用
setImmediate
计划回调,它都会在执行回调之前等待事件循环下一次迭代的
check
阶段。