Olá, eu comecei a programar agora e escolhi javascript.
Eu estou treinando algumas coisas, e decidi criar uma array e usei o comando for para percorrer essa array, só que eu coloquei a função setInterval e não esta funcionando da maneira que eu gostaria.
for(let pos in num) {
const time = setInterval(() => {console.log(`foi encontrado o numero ${num[pos]}`)}, 3000);
}
em vez dele retornar um de cada vez em 3s ele ta retornando todos de uma vez em 3s. e quando eu coloco um “return time” ele até retornar a cada 3s, mas retorna só o numero 1, ele n anda o array.
Alguém poderia me esclarecer onde eu estou errando ? e me dar umas dicas?
Apenas para esclarecer, os setIntervals criados nesse for irão executar o código a cada 3s (nesse seu exemplo), pois, uma vez iniciados, não são finalizados (com o uso do clearInterval.
O valor retornado para a variável time é como se fosse o identificador do interval que será executado e é esse valor que é usado na função clearInterval para parar a execução, senão vai executar pra sempre a cada 3s. Veja:
// inicia a execução em intervalos de 3s
const time = setInterval(() => {
console.log(`foi encontrado o numero ${num[pos]}`)
}, 3000);
// logo após a criação, já finaliza sua execução
clearInterval(time);
E a execução do intervalo é paralelo mesmo, uma não irá esperar a outra finalizar para iniciar a execução.
é só por curiosidade msm, estou tentando unir uma função com a outra para ver como fica. como eu disse, estou aprendendo agora javascript ai quero ficar testando essas coisas até aprender de fato.