O setTimeout é frequentemente usado para atrasar a execução de uma função e é usado como:
A cópia do código é a seguinte:
setTimeout (function () {
...
}, tempo esgotado);
Às vezes, o setTimeout (função…, 0) é usado para processamento assíncrono; por exemplo:
A cópia do código é a seguinte:
função f () {
… // Prepare -se
setTimeout (function () {
…. // Faça algo
}, 0);
retornar …;
}
Antes do processador de função definido pelo setTimeout, a função f retorna;
Seja especialmente cuidadoso ao usar o processamento assíncrono, especialmente ao usar recursos de fechamento;
Por exemplo:
A cópia do código é a seguinte:
for (var i = 0; i <10; i ++) {
setTimeout (function () {
console.log (i);
}, 0);
}
Para os alunos que usam esse método pela primeira vez, é provável que eles pensem que o programa imprimirá 0… 9, mas o resultado é que 10 são realmente impressos 10;
O problema é que, quando o loop é concluído, a função é executada e eu me tornei 10 e 10 é usado no console.log (i)!
O objetivo de adicionar você é imprimir 0… 9, para que você possa alterar o método e usar os parâmetros da função para salvar 0… .9 (na verdade, ele também usa fechamentos):
A cópia do código é a seguinte:
for (var i = 0; i <10; i ++) {
setTimeout ((function (i) {
Return function () {
console.log (i);
}
}) (i), 0);
}