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') 
}