Versprechen mit dem Download-Modul nutzen

Ich benutze Bluebird für Versprechungen.

Ich versuche das zu versprechenModul herunterladen.

Hier ist meine Implementierung:

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
});

Dann benutze es:

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

Mein Problem ist, dass nicht alle Dateien heruntergeladen werden (ich habe eine Liste an diese Funktion gesendet). Was mache ich falsch?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage