У меня есть следующий цикл:
while (true) {
await f();
await g();
}
, где f
и g
определены следующим образом:
async function f() {
await Promise.all([SOME_REQUEST_F, sleep(1000)])
}
async function g() {
await Promise.all([SOME_REQUEST_G, sleep(5000)])
}
Также sleep
определяется следующим образом:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
Мое намерение состоит в том, чтобы SOME_REQUEST_F
ожидал каждую секунду, а SOME_REQUEST_G
ожидал каждые пять секунд, следовательно, заключая их в f
и g
.
Однако, в настоящее время g
блокирует повторное ожидание f
в цикле.
Как определить sleep
, так что при использовании в g
он блокируетповторное исполнение g
, но не то, что f
?Есть ли лучший способ сделать то, что я хочу?