Здравствуйте, есть функция, которая достаёт данные из массива по id, а если этих данных в массиве нет,
то делает запрос этих данных на сервер, проблема в том, что можно делать запрос на сервер только один раз в 60 мс.
async function getData(id) {
const data = myArray.find(obj => obj.id == id)
if (data) return data
else {
/* сервер разрешает делать запрос только один раз в 60мс */
const response = await fetch(`https://server/api/${id}`)
return response.json()
}
}
/* Теперь данная функция вызывается в цикле */
const x = array.map(async item => {
const data = await getData(item.id)
/* ... ... */
})
Но скорость цикла очевидно быстрее чем 60мс, а замедлять его с помощью
setTimeout я не могу, потому что это замедлит все запросы, в том числе и те,
где не нужно обращаться к серверу.
Думаю что нужно вынести запрос к серверу в отдельную функцию
и как-то её "замедлить", сделать так, чтобы независимо от того, сколько раз её вызвали
она работала только раз через 60мс. Как такое реализовать?