如何在使用 Cytoscape 完成动画后减少 运行 函数的函数调用计数

How to reduce function call count for a function that is run after animation completion with Cytoscape

我在节点集合上有一个动画。然而,在动画完成后,我希望它只调用一次函数,但显然该函数被调用的次数与集合中的节点数一样多。有办法阻止这种情况吗?我只希望它 运行 一次。刚接触 Javascript,感谢任何帮助。

  collection.animate({
    style: {
      'line-color': 'red',
      'target-arrow-color': 'red',
      'border-width': 20,
      'border-color': 'red'
    }
  }, {
    'duration': 3000,
    'complete': () => "hello world";
  });

打印 9 次“hello world”,因为我的节点和边集合的长度为 9(有向图中节点和边的子分支)

这应该很容易。只需放置一个布尔变量来检查是否已经执行。

let isExecuted = false;

collection.animate({
  style: {
    'line-color': 'red',
    'target-arrow-color': 'red',
    'border-width': 20,
    'border-color': 'red'
  }
}, {
  'duration': 3000,
  'complete': () => {
    if (isExecuted) {
      return;
    }
    console.log("hello world");
    isExecuted = true;
  };
});