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