lib/vow.js
function(onFulfilled, onRejected, ctx) {
        return this.then(
            function(val) {
                return onFulfilled.apply(this, val);
            },
            onRejected,
            ctx);
    }
function(onFulfilled, onRejected, ctx) {
        return this.then(
            function(val) {
                return onFulfilled.apply(this, val);
            },
            onRejected,
            ctx);
    }
function ( onFulfilled , onRejected , ctx ) { return this . then ( function ( val ) { return onFulfilled . apply ( this , val ) ; } , onRejected , ctx ) ; }
Like `promise.then`, but "spreads" the array into a variadic value handler.
It is useful with the `vow.all` and the `vow.allResolved` methods.

@param {Function} [onFulfilled] Callback that will be invoked with a provided value after the promise has been fulfilled
@param {Function} [onRejected] Callback that will be invoked with a provided reason after the promise has been rejected
@param {Object} [ctx] Context of the callbacks execution
@returns {vow:Promise}

@example
```js
var defer1 = vow.defer(),
defer2 = vow.defer();

vow.all([defer1.promise(), defer2.promise()]).spread(function(arg1, arg2) {
// arg1 is "1", arg2 is "'two'" here
});

defer1.resolve(1);
defer2.resolve('two');
```
Like promise . then but spreads the array into a variadic value handler . It is useful with the vow . all and the vow . allResolved methods .