Нет.Функции, поставленные в очередь через setTimeout
, запускаются только после завершения основного потока (или любого другого потока, который выполняется в данный момент) - нет вложенных вызовов / вложенных сред, которые могут вызвать переполнение, которое вас беспокоит.Если вы запустите этот фрагмент, вы никогда не столкнетесь с ошибкой, например:
function myFunc(i) {
if (i % 1000 === 0) console.log(i);
setTimeout(function() {
myFunc(++i)
})
}
myFunc(0);
То же самое относится и к функциям, которые вызывают обещания, которые вызывают себя рекурсивно через .then
- это совершенно безопасно.