Tengo una función que necesito ejecutar varias veces, pero espero hasta que finalice la anterior.
Actualmente lo que tengo es:
for(var x = 0; x < rollsArr.length; x++){ rollDice(data.results, x) } function rollSkins(results, rollN) { // do some stuff setTimeout(function() { roll(results, rollN) }, 500); } function roll(results, rollN) { // do some stuff setTimeout(function() { // do some stuff }, 8500); }Me gustaría que termine una función de rollo, luego espere unos segundos y luego comience otro rollo. Intenté esperar a rollDice pero no lo implementé correctamente o no funcionó.
¿Cuál sería la solución para esto?
Puede usar async/await o Promise.then(). Referencia: https://zellwk.com/blog/async-await-in-loops/
const rollsArr = [1,2,3]; const data = {results: "example"}; const sleep = ms => { return new Promise(resolve => setTimeout(resolve, ms)) } (async () => { for (var x = 0; x < rollsArr.length; x++){ await rollDice(data.results, x) } })() async function rollDice(results, rollN) { // do some stuff await sleep(500); await roll(results, rollN); } async function roll(results, rollN) { // do some stuff console.log("Rolling dice"); await sleep(1000); console.log("Doing stuff"); }