Узел js - HTTP-запросы не работают должным образом в цикле - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть этот код, по которому я хочу перейти по различным ссылкам и получить информацию о 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-страницах цикл собирает информацию о компонентах, кратных одной странице. Я понимаю, что это, скорее всего, проблема с функцией, выполняемой асинхронно, и я просмотрел документацию, попробовал обещания и счетчики и до сих пор не могу заставить ее работать. Я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...