Nodejs - cykliczne wywoływanie funkcji asynchronicznej

0

Mam funkcję foo(), która zwraca obietnicę (Promise). Funkcja foo() może się wykonywać około 1-3 sekundy. Chciałbym aby za każdym razem po wykonaniu mijała sekunda i żeby funkcja była ponownie wywoływana. setInterval niestety nie działa w obu formach:
setInterval(() => {
foo().then(); // ale na co czekamy?
}, 1000);

lub

setInterval(async () => {
await foo();
}, 1000;

Efekt jest taki, że w przypadku gdy wykonanie foo() trwa dłużej niż 1 sekundę, to setInterval nie czeka na zakończenie i wywołuje funkcję foo() ponownie. Powoduje to, że dwa wywołania foo() wykonują się w tym samym czasie.

1
function boo() {
    foo().then(() => {setTimeout(boo, 1000);});
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1