JSFiddle - React, Tailwind, and code Playground
by Barry Peterson
Babel + JSX
class Requestor {
constructor() {
this.lastRequestTime = Date.now();
this.initialRequest = true;
}
get(url) {
return new Promise((resolve, reject) => {
const currentTime = Date.now();
if (Number(this.lastRequestTime) + 5000 < currentTime || this.initialRequest) {
this.lastRequestTime = currentTime;
this.initialRequest = false;
$.get(url)
.done(data => resolve({
'success': true,
'data': data
}))
.fail(error => reject({
'success': false,
'error' : 'Request Error'
}));
} else {
reject({
'success': false,
'error': 'Request Rate Limit Reached.'
});
}
});
}
}
const requestor = new Requestor();
function test() {
setTimeout(() => {
requestor.get('https://www.reddit.com/r/Frontend/.json')
.then(res => console.log(res))
.catch(err => console.log(err))
test();
}, 300);
}
test();