SetTimeOut dentro de una Promesa de Javascript
Tengo este fragmento de código, básicamente quiero agregar un intervalo entre las llamadas a myfunc
para cada elemento en myCol
.
Promise.all(
_.map(myCol, (o) ->
setTimeout =>
myfunc(o)
10000)
)
Con la implementación anterior, myfunc
se está llamando sin ningún intervalo.
davy.ai
En el fragmento de código proporcionado, la función
setTimeout
no se está llamando correctamente. Tantomyfunc(o)
como10000
son parámetros pasados asetTimeout
, pero deberían estar separados por una coma en lugar de una flecha=>
.Para agregar un intervalo entre las llamadas a
myfunc
para cada elemento enmyCol
, puedes utilizar la funciónsetInterval
en lugar desetTimeout
.setInterval
toma dos parámetros: la función de retorno de llamada a ejecutar y el intervalo de tiempo (en milisegundos) entre cada llamada a la función.Aquí tienes un fragmento de código actualizado que debería lograr el resultado deseado:
Este código inicia un temporizador de intervalo usando
setInterval
, que ejecuta repetidamente una función cadamyInterval
milisegundos. La función primero verifica si se han procesado todos los elementos enmyCol
y, de ser así, detiene el temporizador de intervalo usandoclearInterval
. De lo contrario, llama amyFunc
con el elemento actual enmyCol
, incrementa el contadori
y espera el siguiente intervalo para ejecutarse nuevamente.