JSFiddle - React, Tailwind, and code Playground

by Himanshu Joshi

HTML

<!-- to create custom promises -->

JavaScript

var Promise = function(){
	this.okCallBacks = [];
  this.koCallBacks = [];
};

Promise.prototype = {
	okCallBacks: null,
  koCallBacks:null,
  then: function(okCallBack, koCallBack){
  	this.okCallBacks.push[okCallBack];
    if(koCallBack)
    	this.koCallBacks.push[koCallBack];
  }
};
var Defer = function(){
	this.promise = new Promise();
};
Defer.prototype = {
	promise:null,
  resolve: function(data){
  		this.promise.okCallBacks.forEach(function(callback){
      		window.setTimeout(function(){
          	callback(data);
          }, 0);
      });
  },
  reject: function(error){
  	this.promise.koCallBacks.forEach(function(callback){
      		window.setTimeout(function(){
          	callback(error);
          }, 0);
      });
  }
};

function test(){
var defer = new Defer();
		window.setTimeout(function(){
    //mimick ajax
    	defer.resolve(100);
    }, 3000);
return defer.promise;
}

test().then(function(text){
	console.log(text);
}, 
function(){
alert(text);
});