Ich habe ein Array, das Dateinamen für jeden Index enthält. Ich möchte diese Dateien einzeln nacheinander herunterladen (synchron). Ich kenne das Modul ' Async
'. Aber ich möchte wissen, ob irgendwelche Funktionen in Lodash
oder Underscore
oder Bluebird
library diese Funktionalität unterstützt.
Sie können die Promise.mapSeries
von bluebird verwenden:
Je nachdem, was Sie zum Herunterladen der Datei verwenden, müssen Sie möglicherweise ein Versprechen erstellen oder nicht.
Update 1
Ein Beispiel für eine Funktion downloadFile()
, die nur nodejs verwendet:
Update 2
Wie Gorgi Kosev vorgeschlagen hat, funktioniert auch der Aufbau einer Kette von Versprechen mit einer Schleife:
%Vor% Eine Kette von Versprechen wird Ihnen nur das Ergebnis des letzten Versprechens in der Kette bringen, während mapSeries()
Ihnen ein Array mit dem Ergebnis jedes Versprechens liefert.
Mit Bluebird gibt es eine ähnliche Situation wie bei Ihnen: Wie a Variable Anzahl der Versprechen in Q, in der Reihenfolge?
Das scheint eine anständige Lösung zu sein, aber meiner Meinung nach viel weniger lesbar und elegant als async.eachSeries (Ich weiß, dass Sie sagten, Sie wollen die 'async' Lösung nicht, aber vielleicht können Sie das noch einmal überdenken.
Tags und Links javascript node.js bluebird underscore.js lodash