Цикл while
является синхронным, в то время как все в любом .then
(или обещании await
) будет асинхронным. Начальный поток никогда не прекратится. Ваш код просто поставит в очередь неограниченные звонки на getProjects
, что будет console.log
.
Простым решением было бы выяснить, как часто вы хотите вызывать util
(раз в секунду? Раз в 5 секунд?) И await
a Promise
, которые разрешаются после этого количества времени на каждой итерации.
let reposExist = true;
function util() {
console.log('running');
}
const resolveAfter5 = () => new Promise(res => setTimeout(res, 5000));
(async () => {
while (reposExist) {
util();
await resolveAfter5();
}
})();