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();