Pergunta

Acabei de me deparar com isso.Na verdade, não está afetando nada, mas estou me perguntando por que isso está acontecendo.

Se eu executar o seguinte código no Firefox com o Firebug ativado:

setInterval(function(param) 
     {
        console.log("param is %o",param)
     },500);

param parece receber um valor vagamente aleatório:

   param is -2
    param is -1
    param is -2
    param is 1
    param is -1
    param is 6
    param is -1
    param is 0
    param is -2
    param is 2
    param is 0
    param is 2
    param is 0
    param is 0
    param is 0
[..]
    param is 0
    param is 0
    param is 0
    param is 0
    param is 0
    param is 0
    param is 0
    param is 911
    param is 0
    param is 0
    param is 0
    param is -1

Compreendo que não estou passando nenhum argumento para setInterval para passar para a função, mas por que o javascript escolhe passar esse número aleatório?

Eu teria esperado indefinido ou algo assim ...

Saúde

p.s.Não testei em outros navegadores

Foi útil?

Solução

Parece depender do uso da CPU do Firefox.

Eu acho que é o atraso desde quando o retorno de chamada deveria ter sido chamado.

EDITAR: eu tinha razão.É o número de milissegundos de atraso em que o retorno de chamada foi chamado.

Outras dicas

É um ID de intervalo definido automaticamente por window.setInterval. Se você armazenar o resultado, poderá limpar o intervalo mais tarde (para impedi -lo)

var intID = window.setInterval( function(){ alert("I'm annoying!"); }, 10000 );

// this will kill it before it annoys you, :D
window.clearInterval( intID );

Este também é o caso com window.setTimeout:

var timeID = window.setTimeout( function(){ alert("I'm annoying!"); }, 10000 );

// this will kill it before it annoys you, :D
window.clearTimeout( timeID );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top