我正在尝试每个人都感到非常兴奋的Promises。他们应该减少代码的复杂性,这是我尚未观察到的功能。
就我而言,我有一个返回Promise的函数。该函数通过ADB在Android设备上调用按键向上或向下事件。我这样称呼它:
press(B_KEY, 3000, client, device)
.then(function(result) {console.log("Key press done.");});
我想依次执行此操作(调用
press
函数)几次。我可以手动执行此操作:press(B_KEY, 3000, client, device)
.then(function(result) {return press(B_KEY, 3000, client, device);})
.then(function(result) {return press(B_KEY, 3000, client, device);})
.then(function(result) {return press(B_KEY, 3000, client, device);})
// ad nauseam
我想要类似
for
循环的内容。我试图想到伪代码来向您展示,但是我的任何想法都很难看。如何使用Promises中的所有功能进行循环?
最佳答案
为了实现您的目标,您可以使用mapSeries()在一个空数组上迭代n次:
return Promise.mapSeries(new Array(4), function() {
return press(B_KEY, 3000, client, device);
});
有关mapSeries()的更多信息,请参见reference
关于javascript - 使用Bluebird Promises做N次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37463265/