You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Так что если вы запустите код выше и подождёте с закрытием `alert` несколько секунд, то следующий `alert` будет показан сразу, как только вы закроете предыдущий. Интервал времени между сообщениями `alert` будет короче, чем 2 секунды.
133
133
```
134
134
135
-
## Рекурсивный setTimeout
135
+
## Вложенный setTimeout
136
136
137
137
Есть два способа запускать что-то регулярно.
138
138
139
-
Один из них `setInterval`. Другим является рекурсивный `setTimeout`. Например:
139
+
Один из них `setInterval`. Другим является вложенный `setTimeout`. Например:
140
140
141
141
```js
142
142
/** вместо:
@@ -153,7 +153,7 @@ let timerId = setTimeout(function tick() {
153
153
154
154
Метод `setTimeout` выше планирует следующий вызов прямо после окончания текущего `(*)`.
155
155
156
-
Рекурсивный`setTimeout` - более гибкий метод, чем `setInterval`. С его помощью последующий вызов может быть задан по-разному в зависимости от результатов предыдущего.
156
+
Вложенный`setTimeout` - более гибкий метод, чем `setInterval`. С его помощью последующий вызов может быть задан по-разному в зависимости от результатов предыдущего.
157
157
158
158
Например, необходимо написать сервис, который отправляет запрос для получения данных на сервер каждые 5 секунд, но если сервер перегружен, то необходимо увеличить интервал запросов до 10, 20, 40 секунд...
159
159
Вот псевдокод:
@@ -176,7 +176,7 @@ let timerId = setTimeout(function request() {
176
176
177
177
А если функции, которые мы планируем, ресурсоёмкие и требуют времени, то мы можем измерить время, затраченное на выполнение, и спланировать следующий вызов раньше или позже.
178
178
179
-
**Рекурсивный`setTimeout` позволяет задать задержку между выполнениями более точно, чем `setInterval`.**
179
+
**Вложенный`setTimeout` позволяет задать задержку между выполнениями более точно, чем `setInterval`.**
180
180
181
181
Сравним два фрагмента кода. Первый использует `setInterval`:
0 commit comments