Wie wiederhole ich ein Array synchron mit lodash, Unterstrich oder bluebird [closed]

8

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.

    
Nidhin David 23.12.2015, 12:50
quelle

2 Antworten

5

Sie können die Promise.mapSeries von bluebird verwenden:

%Vor%

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:

%Vor%

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.

    
Shanoor 23.12.2015, 14:23
quelle
1

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.

    
Gilad Bison 23.12.2015 14:23
quelle