index.js
function push(value, key) {
        value = fn(value, key);
        if (Q.isPromise(value)) return value.then(function(v) {
            newArray.push(v);
        });
        newArray.push(value);
    }
function push(value, key) {
        value = fn(value, key);
        if (Q.isPromise(value)) return value.then(function(v) {
            newArray.push(v);
        });
        newArray.push(value);
    }
function push ( value , key ) { value = fn ( value , key ) ; if ( Q . isPromise ( value ) ) return value . then ( function ( v ) { newArray . push ( v ) ; } ) ; newArray . push ( value ) ; }
Allow iterator return to be a promise
Allow iterator return to be a promise