Função global setTimeout() do Javascript
O método global setTimeout é uma função em JavaScript que permite atrasar a execução de um trecho de código por um determinado período de tempo. Ele é frequentemente usado para criar atrasos entre ações, animações ou para agendar a execução de tarefas em um futuro próximo.
setTimeout(code, delay)
setTimeout(funcao, atrasoEmMilissegundos);
Parâmetros
funcao a ser executado depois do timer expirar
atrasoEmMilissegundos O tempo em milissegundos, que o cronômetro deve esperar antes que a funcão ou código especificado seja executado.
exemplo 1:
function minhaFuncao() {
console.log("A função foi executada após o atraso!");
}
setTimeout(minhaFuncao, 2000); // Executará minhaFuncao após 2 segundos (2000 milissegundos).
Uma coisa importante a notar é que o setTimeout não garante que a função seja executada exatamente após o tempo especificado. Pode haver pequenas variações devido a fatores como a carga do navegador ou do dispositivo.
Além disso, se você precisar executar o código repetidamente em intervalos regulares, pode usar setInterval, que funciona de maneira semelhante, mas chama a função em intervalos regulares em vez de apenas uma vez.
Exemplo Prático:
// Esta função é chamada quando o alarme deve tocar.
function tocarAlarme() {
// Define o texto a ser exibido quando o alarme tocar.
var texto = "Acorde seu imprestável!";
// Atualiza o conteúdo de um elemento HTML com o texto do alarme.
result = document.getElementById("alarme").innerText = texto;
}
// Esta função configura o alarme para tocar na hora especificada.
function configurarAlarmeNaHora(horaAlvo) {
// Divide a string de hora em partes: horas, minutos e segundos.
const partesHora = horaAlvo.split(":");
// Obtém a data e hora atual.
const agora = new Date();
// Cria um novo objeto de data usando a hora alvo e a data atual.
const horaAlvoObj = new Date(
agora.getFullYear(),
agora.getMonth(),
agora.getDate(),
partesHora[0], // Horas da hora alvo.
partesHora[1], // Minutos da hora alvo.
partesHora[2] // Segundos da hora alvo.
);
// Verifica se a hora alvo já passou no mesmo dia.
if (horaAlvoObj <= agora) {
// Adiciona um dia à data alvo para agendar o alarme para o próximo dia.
horaAlvoObj.setDate(horaAlvoObj.getDate() + 1);
}
// Calcula o tempo restante em milissegundos até a hora alvo.
const tempoRestante = horaAlvoObj - agora;
// Agende a execução da função tocarAlarme após o tempo restante.
setTimeout(tocarAlarme, tempoRestante);
// Exibe uma mensagem no console indicando quando o alarme será acionado.
console.log( "Alarme configurado para tocar às " + horaAlvoObj.toLocaleTimeString() + "." );
}
// Configura o alarme para tocar às 06:06:00.
configurarAlarmeNaHora("06:06:00");
Espero que possa ajudar a comunidade e tenha dado uma noção de como usar essa função muito importante.
Lembre-se de que o uso excessivo de atrasos com setTimeout pode afetar o desempenho da sua aplicação, especialmente se muitos temporizadores estiverem em execução ao mesmo tempo. Portanto, é importante usá-lo com moderação.
Fonte: