Usar promesas con el módulo de descarga

Estoy usando bluebird para promesas.

Estoy tratando de prometer elmódulo de descarga.

Aquí está mi implementación:

Promise  = require('bluebird'),
download = require('download');

var methodNameToPromisify = ["download"];

function EventEmitterPromisifier(originalMethod) {
    // return a function
    return function promisified() {
        var args = [].slice.call(arguments);
        // Needed so that the original method can be called with the correct receiver
        var self = this;
        // which returns a promise
        return new Promise(function(resolve, reject) {
            // We call the originalMethod here because if it throws,
            // it will reject the returned promise with the thrown error
            var emitter = originalMethod.apply(self, args);

            emitter
                .on("response", function(data) {
                    resolve(data);
                })
                .on("data ", function(data) {
                    resolve(data);
                })
                .on("error", function(err) {
                    reject(err);
                })
                .on("close", function() {
                    resolve();
                });
        });
    };
};
download = { download: download };
Promise.promisifyAll(download, {
    filter: function(name) {
        return methodNameToPromisify.indexOf(name) > -1;
    },
    promisifier: EventEmitterPromisifier
});

Luego usándolo:

return download.downloadAsync(fileURL, copyTo, {});

Mi problema es que no descarga todos los archivos (tengo una lista enviada a esta función), ¿qué estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta