Рекурсивный setTimeout в JavaScript

Можно ли запустить это «на неопределенный срок», не вызывая переполнение стека или нехватку памяти?

function eternal(){
    var time = recalculateTime();
    doSomething();
    setTimeout(eternal,time);
}

setTimeout(eternal,200000);

Я не использую setInterval, потому что время запуска является переменным.

Ответы на вопрос(2)

Ваш ответ на вопрос