JSFiddle - React, Tailwind, and code Playground

JavaScript

const ajax = (request) => {
	return new Promise((success, error) => {
  	jQuery.ajax(Object.assign({}, request, { success, error }))
  })
}

class RegularPacket {
  constructor () {
  	this._ajax()
    	.then((...args) => this._ajaxSuccess(...args))
      .catch((...args) => this._ajaxError(...args))
  }
  _ajax () {
    return ajax({
      type: 'POST',
      url: 'php/ajax.php',
      data: { action: 'pause', timeout: 100 },
      dataType: 'json',
    })
  }  
  
  func () {
   console.log('it works')
  }
  
	_ajaxSuccess (data, textStatus, XMLHttpRequest) {
  	console.log(this); // returns instance of RegularPacket
		if(data.status === 'ok') {
			this.func(); 
		} else if(data.status === 'error') {
			console.error(data.message);
		}
  }
  
  _ajaxError (XMLHttpRequest, textStatus, errorThrown) {
  	console.error('ajax')
  }
}