Как возвращать из функции время каждую секунду?

Я хочу отобразить на странице текущее время, так чтобы оно обновлялся каждую секунду.Проблема в том, в функции return не возвращает обновленное время

function showTime(){

    const date = new Date();
    const currentTime = date.toLocaleTimeString();
    setTimeout(showTime, 1000);
    //console.log(currentTime); работает корректно
    return currentTime;
}
showTime();

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

Автор решения: Алексей Шиманский

Не понимаю, чем вам не угодил такой подход (делать вывод значения прямо в функции):

function showTime(){
    const date = new Date();
    const currentTime = date.toLocaleTimeString();        
    const timeElement = document.querySelector('time'); 
    timeElement.textContent = currentTime; 
    
    setTimeout(showTime, 1000);
}
showTime();
<time></time>

может быть сделать вот так, чтобы отделить функцию взятия даты и рендер

let timer = document.querySelector('time');

function getTime() {  
    return (new Date()).toLocaleTimeString();        
}

function renderTime(timer){    
    timer.textContent = getTime();     
    setTimeout(renderTime, 1000, timer);
}
renderTime(timer);
<time></time>

→ Ссылка