 <p>I'm not sure whether you just implemented the <a href="http://stackoverflow.com/q/23803743/1048572"><code>Promise</code> constructor antipattern</a> by accident, and are now trying to generalise it, or genuinely recognised the <a href="http://stackoverflow.com/a/22562045/1048572">usefulness of functors/monads</a> (congrats!), but <strong>you've reinvented the <code>.then</code> method</strong>.</p> <p>Your code is <a href="http://stackoverflow.com/q/24662289/1048572">more or less exactly</a> equivalent to</p> <pre><code>function promiseWrap(promiseInstance, resolveFunc, rejectFunc) { // assuming promiseInstance instanceof Promise - if not, add a `Promise.resolve()` return promiseInstance.then(resolveFunc, rejectFunc); } </code></pre> <p>Indeed, this return value of <code>then()</code> calls - another promise for the result of the callback(s) - is what promises are all about.</p>