Tengo una animación en una colección de nodos. Sin embargo, después de completar la animación, quiero que llame a una función solo una vez, pero aparentemente la función se llama tantas veces como nodos haya en la colección. ¿Hay alguna manera de detener esto? Solo quiero que se ejecute una vez. Bastante nuevo en Javascript, agradezco cualquier ayuda.
collection.animate({ style: { 'line-color': 'red', 'target-arrow-color': 'red', 'border-width': 20, 'border-color': 'red' } }, { 'duration': 3000, 'complete': () => "hello world"; });Imprime 9x "hola mundo" ya que mi colección de nodos y aristas tiene una longitud de 9 (subrama de nodos y aristas en un gráfico dirigido)
Esto debería ser fácil. Simplemente coloque una variable booleana para verificar si ya se ejecutó.
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; }; });