Tengo dos funciones en JS, una llama a otra, pero la primera vuelve a intentarlo después de un segundo si una condición se vuelve falsa. El problema es que quiero que la segunda función espere hasta que también se completen estas instancias recursivas.
Esto es lo que tengo hasta ahora:
async function firstFunction(){ if(SomeCondition){ //do something } else{ //do something setTimeout(() => { firstFunction(); }, 1000); //Tries again in 1 second } } async function secondFunction(){ await firstFunction() //waiting firstFunction and its instances to finish }No se me ocurre cómo solucionar esto, ¿alguna idea?
Ya que ha hecho firstFunction async , use Promises para hacer lo que necesita
async function firstFunction() { if (SomeCondition) { //do something } else { //do something await new Promise(r => setTimeout(r, 1000)) await firstFunction(); } } async function secondFunction() { await firstFunction() //waiting firstFunction and its instances to finish }