settimeout часто используется для задержки выполнения функции и используется как:
Кода -копия выглядит следующим образом:
settimeout (function () {
…
}, тайм -аут);
Иногда settimeout (функция…, 0) используется для асинхронной обработки; например:
Кода -копия выглядит следующим образом:
функция f () {
… // Будьте готовы
settimeout (function () {
… // что -нибудь делай
}, 0);
возвращаться …;
}
Перед тем, как процессор функционального процессора, установленным SETTIMEOUT, функция F возвращает;
Будьте особенно осторожны при использовании асинхронной обработки, особенно при использовании функций закрытия;
Например:
Кода -копия выглядит следующим образом:
для (var i = 0; i <10; i ++) {
settimeout (function () {
console.log (i);
}, 0);
}
Для студентов, которые используют этот метод впервые, они, вероятно, будут думать, что программа будет печатать 0… 9, но в результате 10 действительно напечатаны 10;
Проблема в том, что когда петля будет завершена, функция выполняется, и я стал 10, а 10 используется в консоли .log (i)!
Цель добавления вас состоит в том, чтобы распечатать 0… 9, чтобы вы могли изменить метод и использовать параметры функции, чтобы сохранить 0… .9 (на самом деле, он также использует закрытие):
Кода -копия выглядит следующим образом:
для (var i = 0; i <10; i ++) {
setTimeout ((function (i) {
return function () {
console.log (i);
}
}) (i), 0);
}