У меня есть этот код, по которому я хочу перейти по различным ссылкам и получить информацию о HTML-коде внутри него.
var request = require("request");
var components = ["componentName1", "componentName2", "componentName3"];
for(let i = 0; i < components.length; i++) {
request('http://www.examplesite.com/' + components[i] + '/tags/', function (err, resp, body) {
if (!err && resp.statusCode == 200) {
var versions = body.match(/(\d+\.)(\d+\.)(\*|\d+)/g);
console.log(versions);
} else {
console.log("Error: " + resp.statusCode);
if(err) console.log(err);
}
});
}
Проблема в том, что цикл завершается до того, как все запросы завершены, поэтому вместо получения информации о различных html-страницах цикл собирает информацию о компонентах, кратных одной странице. Я понимаю, что это, скорее всего, проблема с функцией, выполняемой асинхронно, и я просмотрел документацию, попробовал обещания и счетчики и до сих пор не могу заставить ее работать. Я что-то упустил?