A promise library that violates everything you know about promises.
Things You Can Do
*Create promises where the resolver can reset the promise to resolve/reject again. *Create deferreds that can be reset to resolve/reject again. Again
Why on earth would you do this?
*Create a promise that always resolves with an open connection (reset the promise on conn.close or conn.err) *Pipeline dynamic dependencies through normal promise symantics
Install via NPM
$ npm install recant
var recant = ;var promise = recant
var recant = ;var deferred = recantdefer ;var promise = deferredpromise ;deferred; // as of now, all promise.then calls will resolve with a valuedeferred ; // now, all promise.then calls ( against the same promise ) will be pending until resolved or rejected againdeferred ; // now, all promise.then calls will be rejected as the state has changed