I'm writing an app that needs to query an RestAPI with a set of input. However, that API is very bad at scaling and it will return code 429 if it receives too many request. So I was trying to add a sleep function between each axios call but it seems not working. Wondering if I have this sleep function set correctly.
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}
useEffect(() => {
let results = [];
async function fetchData(id) {
let request = someAPI + id + query;
axios.get(request).then((result) => {
results.push(result);
}).catch((error) => {console.log(error);});
await sleep(2000);
}
for (let i = 1; i <= 20; i++) {
fetchData(i);
}
},[]);