Simple Javascript Promise Implementation (see this blog post: http://www.opensourceconnections.com/2014/02/16/a-simple-promise-implementation-in-about-20-lines-of-javascript/)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
var Promise = function(wrappedFn, wrappedThis) { | |
this.then = function(wrappedFn, wrappedThis) { | |
this.next = new Promise(wrappedFn, wrappedThis); | |
return this.next; | |
}; | |
this.run = function() { | |
wrappedFn.promise = this; | |
wrappedFn.apply(wrappedThis); | |
}; | |
this.complete = function() { | |
if (this.next) { | |
this.next.run(); | |
} | |
}; | |
}; | |
Promise.create = function(func) { | |
if (func.hasOwnProperty('promise')) { | |
return func.promise; | |
} else { | |
return new Promise(); | |
} | |
}; |
Sign up for free to join this conversation on . Already have an account? Sign in to comment
sample usage
var foo = function() {
var promise = Promise.create(foo)
async.wait(function() {
promise.complete();
});
return promise;
}