JSFiddle - React, Tailwind, and code Playground
by Barry Peterson
JavaScript
class Requestor {
constructor(frequency) {
this.requestQ = [];
this.lastRequestTime = Date.now();
this.frequency = frequency;
this.requestObserver();
}
get(request) {
this.requestQ.push(request);
}
handleRequest() {
if (this.requestQ.length) {
$.get(this.requestQ[0])
.done(data => {
console.log(data);
this.requestQ.shift();
})
.fail(err => console.log(err))
}
}
requestObserver() {
const currentTime = Date.now();
if (this.lastRequestTime + this.frequency < currentTime) {
this.handleRequest();
this.lastRequestTime = currentTime;
}
setTimeout(() => {
this.requestObserver();
}, 200);
}
}
const getStuff = new Requestor(5000);
for (i = 0; i < 100; i++) {
getStuff.get('https://www.reddit.com/r/vandwellers/.json')
getStuff.get('https://www.reddit.com/r/itap/.json')
}