JSFiddle - React, Tailwind, and code Playground
by blesh
JavaScript
// Promise 2
console.clear();
var aq = (function () {
function defer() {
return new Deferred();
}
function Deferred() {
var success;
var failure;
var resolved = function (fn) {
success = fn;
};
var rejected = function (fn) {
failure = fn;
};
var promise = new Promise(resolved, rejected);
this.resolve = function (val) {
if (success) success(val);
};
this.reject = function (reason) {
if (failure) failure(reason);
};
this.promise = function () {
return promise;
};
}
function Promise(resolved, rejected) {
this.then = function (success, failure) {
var d = new Deferred();
resolved(function (val) {
try {
var result = success(val);
d.resolve(result);
} catch (err) {
d.reject(err.message);
}
});
rejected(function (reason) {
try {
var newReason = failure(reason);
d.reject(newReason);
} catch (err) {
d.reject(err.message);
}
});
return d.promise();
};
this.
catch = function (handler) {
var d = new Deferred();
rejected(function (reason) {
try {
var handled = handler(reason);
d.resolve(handled);
} catch (err) {
d.reject(err.message);
}
});
return d.promise();
};
}
return {
deferred: function () {
return new Deferred();
},
reject: function (reason) {
var d = new Deferred();
setTimeout(function () {
d.reject(reason);
...