与承诺蓝鸟一起循环

时间:2016-06-10 10:49:29

标签: javascript node.js promise bluebird

有没有办法按照

这样的数字循环承诺
Promise.map(5, function(i){})

所以上面的代码将循环5次

现在承诺期望一个数组

1 个答案:

答案 0 :(得分:3)

一个选项:Promise.map(Array.from(Array(5).keys()), function(i){})

基本上,您正在寻找range()方法,或者至少是一种模拟它的方法。如果您使用的Promise实现不提供range()方法(并且最优秀的蓝鸟Promise库没有),我上面提供的代码是一种非常简洁的模拟方法。

其他选择:

//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){})