function serie(arr, iter, base) {
    return reduce(arr, function(before, item, key) {
        return Q(iter(item, key))
        .then(function(r) {
            before.push(r);
            return before;
        });
    }, []);
}
function serie(arr, iter, base) {
    return reduce(arr, function(before, item, key) {
        return Q(iter(item, key))
        .then(function(r) {
            before.push(r);
            return before;
        });
    }, []);
}
function serie ( arr , iter , base ) { return reduce ( arr , function ( before , item , key ) { return Q ( iter ( item , key ) ) . then ( function ( r ) { before . push ( r ) ; return before ; } ) ; } , [ ] ) ; }
Transform an array

@param {Array|List} arr
@param {Function(value, element, index)}
@return {Promise}
Transform an array
returns a promise that resolves to an array of the result