我有一个返回承诺的函数。在函数中,我遍历一个数组,并使用请求模块为数组中的每个元素发出请求。
一旦我得到每个请求的回复,我想解决这个承诺。现在我已经设法通过创建一个count变量并在计数达到与数组相同的长度时解析。这似乎不是一个强大/可行的选择。有没有其他方法可以等到最后一个请求回调被触发后才能解决。
function getSens(arr) {
return new Promise(function(resolve, reject) {
var count = 0;
arr.forEach(function(a) {
var data = postData;
request.post({
headers: { 'content-type': 'application/x-www-form-urlencoded' },
url: apiEndpoint',
body: data
}, function(error, response, body) {
count++;
if (!error && response.statusCode == 200) {
let data = JSON.parse(body);
a['apiResponse'] = data;
}
if (count === a.length) {
resolve(ad);
}
});
});
});
}
`