JSFiddle - React, Tailwind, and code Playground
by Castrolol
JavaScript
//definition
function PromiseMe() {
var self = this;
var _successListeners = [];
var _failListeners = [];
var _promiseReturn = {
done: function (cb) {
_successListeners.push(cb);
return this;
},
fail: function (cb) {
_failListeners.push(cb);
return this;
},
always: function (cb) {
_successListeners.push(cb);
_failListeners.push(cb);
return this;
},
wait : function (cb) {
var promise = new PromiseMe();
this.done(function () {
cb.apply(this, [function () {
promise.done.apply(promise, arguments);
}, function () {
promise.fail.apply(promise, arguments);
}].concat([].slice.call(arguments)));
})
return promise.getPromise();
},
then: function (cb) {
var promise = new PromiseMe();
this.done(function () {
var selfPromise = cb.apply(this, arguments);
selfPromise.done(function () { promise.done.apply(promise, arguments); });
selfPromise.fail(function () { promise.fail.apply(promise, arguments); });
});
return promise.getPromise();
}
}
this.thisObj = {};
this.doneWait = function (wait) {
var params = arguments;
if (params.length > 0) {
params = [].slice(params, 1);
} else {
params = [];
}
var self = this;
setTimeout(function () {
self.done.call(self, params);
}, wait || 10);
};
this.failWait = function (wait) {
var params = arguments;
if (params.length > 0) {
params = [].slice(params, 1);
} else {
...