Entonces, básicamente, todo mi código está dentro de un ciclo while. Dentro de eso, tengo un bucle for que busca una abeja en las cuadrículas vecinas. Cuando detecta una abeja llama a una función. Necesito que todas las funciones llamadas por eso esperen y solo se ejecuten cuando el bucle while esté a punto de finalizar (fuera del bucle for pero dentro del bucle while).
Aquí está mi código:
Cell.prototype.floodFillEach = function() { grid[orginalX][orginalY].floodFill(); while(repeat<=7){ for (var xoff = 0-x12; xoff <= 0+x12; xoff++) { for (var yoff = 0; yoff <= 0+x12; yoff++) { var i = orginalX + xoff; var j = orginalY + yoff; if (i > -1 && i < cols && j > 0 && j < rows) { var neighbour = grid[i][j]; if (neighbour.marked2) { console.log("x:"+i+" y:"+j); neighbour.floodFill(); // everytime this function is called within this while loop i need it to wait untill... } } } } // ... here. I need the functions called to wait and run here and after they are done only then proceed with the rest of this while loop x12++ repeat++ } }Almacene en una matriz, luego llame al final.
Cell.prototype.floodFillEach = function() { grid[orginalX][orginalY].floodFill(); while(repeat<=7){ const neighboursToFloodFill = []; for (var xoff = 0-x12; xoff <= 0+x12; xoff++) { for (var yoff = 0; yoff <= 0+x12; yoff++) { var i = orginalX + xoff; var j = orginalY + yoff; if (i > -1 && i < cols && j > 0 && j < rows) { var neighbour = grid[i][j]; if (neighbour.marked2) { console.log("x:"+i+" y:"+j); neighboursToFloodFill.push(neighbour); } } } } for (const neighbour of neighboursToFloodFill) { neighbour.floodFill(); } x12++ repeat++ } }