javascript - 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?
解决方案
如果您可以同时发送所有请求,则可以使用Promise.all
.
Promise.all(myArr.map(function(q){ return rp('someURL?q='+q); })
.then(function(res){
console.log(res);
// here's all the requests.
});
推荐阅读
- .htaccess - 在重写中更改 URL 参数的名称
- javascript - 如何在 pg 查询中参数化列名
- javascript - HTTP 403 禁止令牌未找到离子 4
- javascript - 将值返回给调用者函数
- vuejs3 - 将对象从子组件(在插槽中)传递到 Vue 3 中的父组件
- excel - Excel:如果单元格有背景填充,则在另一个单元格上创建副本
- json - 如何使用 jq 将这种格式的 json 转换为 csv
- python - 为什么即使没有指定 file 关键字参数,print 函数也会打印到文件?
- angular - Angular 9:对视图数据而不是模型数据进行 MatSort
- spring-boot - 允许在 start.spring.io 中预览自定义文件