Можно ли обойтись одним setTimeout?

Задача: При переходе на страницу отображается число 19, через 10 секунд к числу добавляется +1 единица, и каждые 5 минут пребывания на странице число увеличивается еще на +2 единицы.
HTML:

<div class="counter">19</div>
<div>sales</div>

JavaScript:

const target = document.querySelector(".counter");

let t1 = 10000,
    t2 = 300000;

const updateCounter = function () {
    let count = Number(target.innerHTML);

    target.innerHTML = count += 1;
};

setTimeout(updateCounter, t1);

const counter = function () {
    let count = Number(target.innerHTML);

    target.innerHTML = count += 2;
};
setInterval(counter, t2);

Вопрос: Можно ли обойтись одним setInterval без setTimeout? Или есть способ написать код намного проще?
P.S. Это мои первые шаги в JS поэтому не судите строго.


Ответы (1 шт):

Автор решения: vsemozhebuty

Можно обойтись одной функцией с повторением setTimeout(), но, как вам уже написали, это без нужды запутает логику функции и добавит в неё лишние проверки. Так что разве что в качестве упражнения:

const target = document.querySelector(".counter");

let t1 = 10000,
    t2 = 300000;

const updateCounter = function () {
    let count = Number(target.innerHTML);

    target.innerHTML = count += (count === 19 ? 1 : 2);
    
    setTimeout(updateCounter, t2);
};

setTimeout(updateCounter, t1);
<div class="counter">19</div>
<div>sales</div>

→ Ссылка