lib/async.js
function asyncZip() {
    return asyncArray(when.apply(null, argsToArray(arguments)).chain(function (result) {
        return zip.apply(array, normalizeResult(result).map(function (arg) {
            return isArray(arg) ? arg : [arg];
        }));
    }));
}
function asyncZip() {
    return asyncArray(when.apply(null, argsToArray(arguments)).chain(function (result) {
        return zip.apply(array, normalizeResult(result).map(function (arg) {
            return isArray(arg) ? arg : [arg];
        }));
    }));
}
function asyncZip ( ) { return asyncArray ( when . apply ( null , argsToArray ( arguments ) ) . chain ( function ( result ) { return zip . apply ( array , normalizeResult ( result ) . map ( function ( arg ) { return isArray ( arg ) ? arg : [ arg ] ; } ) ) ; } ) ) ; }
Zips results from promises into an array.

```
function asyncArr(){
var ret = new comb.Promise();
process.nextTick(ret.callback.bind(ret, [1,2,3,4,5]);
return ret.promise;
}

comb.async.zip(asyncArr(), asyncArr()).then(function(zipped){
console.log(zipped); //[[1,1],[2,2],[3,3], [4,4], [5,5]]
});

comb.async.array(asyncArr()).zip(asyncArr()).then(function(zipped){
console.log(zipped); //[[1,1],[2,2],[3,3], [4,4], [5,5]]
});

```


@return {comb.Promise} an array with all the arrays zipped together.
@static
@memberof comb.async
@name zip
Zips results from promises into an array .