JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://amatiasq.com/fiddle-console.js"></script>
JavaScript
function Promise() {
this._callbacks = [];
}
Promise.prototype.then = function(callback) {
if (typeof callback !== 'function') {
throw new Error("[Promise.then] El argumento 'callback' no es una función " + typeof callback);
}
this._callbacks.push(callback);
};
Promise.prototype.done = function() {
var callback;
for (var i = 0; i < this._callbacks.length; i++) {
callback = this._callbacks[i];
callback();
}
};
function esperarUnSegundo() {
var promise = new Promise();
// Hacemos un timeout a mil milisegundos
setTimeout(function() {
promise.done();
}, 2000);
return promise;
}
console.log('Empieza la espera...');
esperarUnSegundo().then(function() {
console.log("Ha pasado dos segundos =D");
});