2016-06-10 12 views
0

Gibt es eine Möglichkeit das Versprechen von Nummer Schleife wieLooping mit Versprechen drossel

Promise.map(5, function(i){}) 

So ist der obige Code wird Schleife 5mal

Gerade jetzt versprechen, erwartet ein Array

+0

Sie bitte Ihre Frage auszuarbeiten. Im Moment ist es nicht klar, was Sie fragen. –

+0

statt Array an die Promise.map übergeben Ich möchte 5 als Wert übergeben, so dass ich es 5 mal durchlaufen kann –

+0

Wie ist das überhaupt mit Versprechungen verbunden? Warum benutzt du keine Schleife? 'für (var i = 0; i <5; i ++) {}' –

Antwort

2

Eine Option: Promise.map(Array.from(Array(5).keys()), function(i){})

Grundsätzlich suchen Sie nach der range() Methode, oder zumindest eine Möglichkeit, es zu emulieren. Wenn die Promise-Implementierung, die Sie verwenden, keine range()-Methode bietet (und die beste Promise-Bibliothek von bluebird nicht), ist der Code, den ich oben angegeben habe, eine ziemlich prägnante Art, sie zu emulieren.

Weitere Optionen:

//If you're using lodash, underscore or any other library with a .range() method 
Promise.map(_.range(5), function(i){}) 

//Or write your own reusable range() function 
// ES6 arrow function syntax 
var myRange = i => Array.from(Array(i).keys()) 
// or classic function syntax 
var myRange = function (i) {return Array.from(Array(i).keys())} 

Promise.map(myRange(5), function(i){})