Я пытаюсь понять, почему не работает этот цикл https.requests.
Я пытаюсь делать 5 запросов http каждую минуту. Каждый http GET-запрос вызывает функцию processRequest () в качестве обратного вызова, и каждый processRequest () возвращает массив из запроса, давайте назовем его resultsArray. Я хотел бы иметь возможность создавать один массив или объект каждую минуту, который является объединением всех 5 "resultsArray" из 5 http-запросов, но у меня возникают проблемы с выяснением, как объявлять, какие переменные где. Вот что я попробовал:
CronJob:
var CronJob = require('cron').CronJob;
var tripDataFinal= new Object();
function makeRequest (){
var urlCounter = 0 ;
var feedsList = ["urlA", "urlB", "urlC", "urlD", "urlE"];
feedsList.forEach((feedToCheck,i)=>{
options = {
host: 'host',
path: feedToCheck
}
https.request(options, function(response){
processRequest(response, i, urlCounter, resultsArrayAll);}).on('error', (e) => {
console.log("Error!"); console.error(e);}).end();
})
}
new CronJob('* * * * * *', makeRequest
, null, true, 'America/New_York');
Функция processRequest (), определенная в отдельном файле require ():
module.exports = {
processRequest : function(response, feedNumber, urlCounter, tripDataFinal) {
urlCounter++;
//do stuff to 'response' to produce a result called resultsArray
resultsArrayAll["array"+urlCounter] = resultsArray;
console.log(urlCounter);
if (urlCounter == 5){
urlCounter = 0 ;
return concat(resultsArrayAll.array0
, resultsArrayAll.array1
, resultsArrayAll.array2
, resultsArrayAll.array3
, resultsArrayAll.array4);
}
else return resultsArrayAll;
}}
Проблемаэтот urlCounter (как я считаю, какой запрос из 5 я нахожусь), кажется, не продвигается дальше 1. Что (может быть, несколько вещей) я делаю неправильно?
Спасибо