Promise, resolve(value). , jQuery.deferred().
function DeferredPromise() {
var _resolve = null;
var _reject = null;
this.promise = new Promise(function(resolve, reject) {
_resolve = resolve;
_reject = reject;
});
this.then = function() {
return this.promise.then(...arguments);
}
this.catch = function() {
return this.promise.catch(...arguments);
}
this.resolve = function() {
_resolve(...arguments);
}
this.reject = function() {
_reject(...arguments);
}
}
DeferredPromise:
var p = new DeferredPromise();
:
p.then(val => {
console.log('val(1)', val);
})
Maybe wait for it again, you can also link it using the usual one Promise:
p.then(val => {
console.log('val(2)', val);
return 42;
}).then(val => {
console.log('.then(somethingElse)', val);
})
.catch(err => { console.error('err', err); })
And allow it whenever you want:
p.resolve({ username: 'Luke.Skywalker', age: 42 });
source
share