首页 > 解决方案 > NodeJS For 循环承诺

问题描述

我正在尝试编写如下代码 -

var rp = require('request-promise');

var myArr = [0,1,2,3,4,5];
var a = 0;
for( var i in myArr) {
  rp('someURL?q='+myArr[i])
  .then(function (response) {
      myArr[i] = response;
  });
}
return myArr;

如何等待每个请求,然后继续 for 循环进行下一次迭代并最终返回 myArr?

标签: javascriptnode.jsfor-looppromise

解决方案


如果您可以同时发送所有请求,则可以使用Promise.all.

Promise.all(myArr.map(function(q){ return rp('someURL?q='+q); })
    .then(function(res){
        console.log(res);
        // here's all the requests.
    });

推荐阅读