Javascript 无法理解为什么函数在d3.js上不断被调用

Javascript 无法理解为什么函数在d3.js上不断被调用,javascript,d3.js,Javascript,D3.js,在学习下面示例中的代码时,我想我几乎了解了所有内容 除非我一辈子都看不到tick()是如何继续被调用的。(意思是,当该函数继续运行并因此继续更新图形时。) tick没有被调用,也没有setinterval或类似的东西。我也不明白。每个(“end”,tick)都有。有人能告诉我吗?这是使用d3.js tick(); function tick() { // push a new data point onto the back data.push(random()); // redr

在学习下面示例中的代码时,我想我几乎了解了所有内容

除非我一辈子都看不到tick()是如何继续被调用的。(意思是,当该函数继续运行并因此继续更新图形时。)

tick没有被调用,也没有setinterval或类似的东西。我也不明白。每个(“end”,tick)都有。有人能告诉我吗?这是使用d3.js

tick();
function tick() {
  // push a new data point onto the back
  data.push(random());
  // redraw the line, and slide it to the left
  path
      .attr("d", line)
      .attr("transform", null)
    .transition()
      .duration(500)
      .ease("linear")
      .attr("transform", "translate(" + x(-1) + ",0)")
      .each("end", tick);
  // pop the old data point off the front
  data.shift();
}

您感到困惑的两件事是相互关联的。用于处理转换事件。例如,转换完成后触发的
end
事件。此代码表示“转换完成后”(即触发
end
事件时),调用
勾选
。这将启动一个新的转换,同样的事情将重复,再次调用
勾选

您感到困惑的两件事是相互关联的。用于处理转换事件。这方面的一个示例是在转换完成后触发的
结束
事件。此代码表示“转换完成后(即触发
end
事件时),调用
勾选
。这将启动一个新的转换,同样的事情将重复,再次调用
勾选

我找不到任何关于此的文档。您也有这些信息吗?请查看#每个链接。如果不清楚,请道歉。太好了!谢谢,答案已接受“若未指定类型,其行为类似于selection.each:立即调用当前转换中每个元素的指定函数,将当前数据d和索引i传递给当前DOM元素的此上下文。”。"这一行清楚地说明了tick是函数并且被调用,但是请注意,这里指定了类型,并且“结束事件在…期间被调用”这一段可能值得一读。谢谢你,我明白你的意思。因此,我猜这意味着在我的代码示例中,tick函数将在执行duration/ease/transform之后运行。除非它被中断并在在这种情况下,tick可能无法运行。这是如此复杂但令人兴奋。我必须检查transition.transition。非常感谢!我找不到任何关于此的文档。您也有这些信息吗?请查看#each链接。如果不清楚,很抱歉。太好了!谢谢您,答案已被接受“若未指定类型,其行为类似于selection.each:立即调用当前转换中每个元素的指定函数,将当前数据d和索引i传递给当前DOM元素的此上下文。”。"这一行清楚地说明了tick是函数并且被调用,但是请注意,这里指定了类型,并且“结束事件在…期间被调用”这一段可能值得一读。谢谢你,我明白你的意思。因此,我猜这意味着在我的代码示例中,tick函数将在执行duration/ease/transform之后运行。除非它被中断并在如果是这样,tick可能不会运行。这是如此复杂但令人兴奋。我必须检查transition.transition。非常感谢!