Funções de temporização
O Javascript possui duas funções de temporização que permitem executar uma tarefa após um determinado período de tempo e/ou a intervalos de tempo regulares.
São elas as funções:
- setTimeout()
- setInterval()
Estas duas funções pertencem à interface do objeto window.
setTimeout()
A função setTimeout() permite executar uma função após um determinado número de milissegundos.
A função clearTimeout() para a execução da função.
Sintaxe:
[const timerId =] setTimeout(funcao, milisegundos);
funcao: função de callback a executar após x milissegundos
milissegundos : número de milissegundos de espera após a qual a função é executada.
timerId = valor retornado que identifica o timer. Pode ser usado para cancelar a tarefa com a função clearTimeout().
Exemplo 1:
//executa a função soma após 5 segundos:
setTimeout(soma, 5000);
function soma() {
alert(3 + 4);
}
Exemplo 2:
//executa a função anónima após 5 segundos:
setTimeout(function(){
alert(7 + 4);
}, 5000);
Exemplo 3:
let timerId;
let contador=0;
function startTask(){
//executa a função após 5 segundos:
timerId = setTimeout(function(){
console.log(++contador);
}, 5000);
}
function soma() {
alert(4 + 7);
}
function stopTask(){
clearTimeout(timerId);
console.log('Contagem interrompida')
}
Neste exemplo usamos a função clearTimeout() para interromper a tarefa iniciada por setTimeout()
setInterval()
A função setInterval() repete a execução de uma função a intervalos de tempo pré-definidos.
Sintaxe:
[const timerId =] setInterval(funcao, milisegundos);
funcao: função de callback a executar após cada x milissegundos
milissegundos : número de milissegundos após os a quais a função é executada repetidamente.
timerId = valor retornado que identifica o timer. Pode ser usado para cancelar a tarefa com a função clearInterval().
Exemplo 1:
//executa a função a cada 10 segundos de intervalo:
setInterval(soma, 10000);
function soma() {
alert(4 + 7);
}
Exemplo 2:
//executa a função a cada 10 segundos de intervalo:
setInterval(function(){
alert(4 + 7);
}, 10000);
Exemplo 3:
let timerId;
let contador=0;
function startTask(){
//executa a função a cada 5 segundos de intervalo:
timerId = setInterval(function(){
console.log(++contador);
}, 5000);
}
function soma() {
alert(4 + 7);
}
function stopTask(){
clearInterval(timerId);
console.log('Contagem interrompida')
}
