Page MenuHomePhabricator

ES6 Deferred

Authored By
Esanders
Nov 11 2018, 3:47 PM
Size
837 B
Referenced Files
None
Subscribers
None

ES6 Deferred

ve.createDeferred = function () {
var deferred = {},
promise = new Promise( function ( resolve, reject ) {
deferred.resolve = function ( value ) {
if ( arguments.length > 1 ) {
ve.log( 'ES6 Promises can\'t be resolved with more than one argument' );
}
resolve.call( this, value );
return deferred;
};
deferred.reject = function ( value ) {
if ( arguments.length > 1 ) {
ve.log( 'ES6 Promises can\'t be rejected with more than one argument' );
}
reject.call( this, value );
return deferred;
};
} );
promise.done = function ( f ) {
return promise.then( f );
};
promise.fail = function ( f ) {
return promise.then( null, f );
};
deferred.then = promise.then;
deferred.always = promise.finally;
deferred.promise = function () {
return promise;
};
return deferred;
};

File Metadata

Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6679017
Default Alt Text
ES6 Deferred (837 B)

Event Timeline