@SideWest
Python.Новичок

Слишком быстрая программа,всё так?

Только начал учить JS, написал вот такую программу:
var request = require("request");

for (var i = 0; i < 10; i++) {
    request("https://vk.com/wall-73247559?own=1/", function(error, response, body) {

        var stable_amount = new Number(body.split('<span class="slim_header_label">15<span class="num_delim"> </span>')[1].split(' ')[0]);
        console.log(stable_amount);
    })
}


Она парсит колличество записей группы вк 10 раз и справляется с этим за 0,900 - 1 секунду,

Прошу подсказать, что я делаю не так, ведь не может она так быстро 10 раз открыть сайт

Буду рад, если подскажете, как исправить

Если что, ответ вот такой:
5d04a14e88b4d809267137.png
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Добро пожаловать в асинхронность.
request() выполняется асинхронно. Вот вы его вызвали, он внутри себя запомнил, по какой ссылке нужно (будет) обратиться и куда вернуть результат. И внешний вызов request() всё, отыграл.

Веб-запрос ещё не пошёл выполняться, а уже работает следующая итерация вашего цикла for().

Все запросы пойдут выполняться почти параллельно. Поэтому и длительность десяти запросов примерно равна длительности одного.

Хинт не по теме вопроса, а
про число записей на стене ВК

ВКонтакте есть хороший API. В том числе, есть метод wall.get() для получения записей со стены и общего числа записей.

Чтобы выполнить запрос к АПИ ВК, понадобится сначала получить токен. Для метода wall.get() годится сервисный токен или токен пользователя.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Что бы вам не приходил ответ из кеша браузера/прокси, поменяйте запрашиваемый URL на request("https://vk.com/wall-73247559?own=1&rnd="+(90000+Math.random()*9999), function(....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы