# Что выведет после setInterval?
[importance 5]
В коде ниже запускается `setInterval` каждые 10мс, и через 50мс запланирована его отмена.
После этого запущена тяжёлая функция `f`, выполнение которой (мы точно знаем) потребует более 100мс.
Сработает ли `setInterval`, как и когда?
Варианты:
- Да, несколько раз, *в процессе* выполнения `f`.
- Да, несколько раз, *сразу после* выполнения `f`.
- Да, один раз, *сразу после* выполнения `f`.
- Нет, не сработает.
- Может быть по-разному, как повезёт.
Что выведет `alert` в строке `(*)`?
```js
var i;
var timer = setInterval(function() { // планируем setInterval каждые 10мс
i++;
}, 10);
setTimeout(function() { // через 50мс - отмена setInterval
clearInterval(timer);
*!*
alert( i ); // (*)
*/!*
}, 50);
// и запускаем тяжёлую функцию
function f() {
// точное время выполнения не играет роли
// здесь оно заведомо больше 100мс
for (i = 0; i < 1e8; i++) f[i % 2] = i;
}
f();
```