Вы не можете просто установить timer
на другое значение. Как только интервал запущен, он продолжится со времени, которое было установлено изначально. Вместо того, чтобы начинать интервал, я бы рекомендовал использовать псевдорекурсивный тайм-аут вместо:
function increasingInterval(fn, time) {
function next(i) {
fn();
setTimeout(next, time * i, i + 1);
}
setTimeout(next, time, 2);
}
Так что вы можете сделать:
increasingInterval(function() {
console.log("something");
}, 5000);