taliban
@taliban
php программист

Как правильно составить логику асинхронной программы?

Есть программа, которая парсит данные с какого-то сайта, на том сайте несколько страниц данных, мне нужно их все получить, не могу понять как огранизовать очередь запроссов.
мне надо сделать запрос к сайту, получить ссылку на следующую страницу (сгенерировать ее не могу и заранее не знаю) и затем исходя из того есть ли она или нет, сделать еще запрос и повторить предидущие действия. Не могу понять как это сделать асинхронно
точного кол-ва страниц не знаю
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
var request = require('request');


fetchData('site.com').then(function (data) {
  console.log(data);
});


function fetchData(url) {
  return fetch({ method: 'GET', url: url }).then(function (body) {
    var link = findLink(body);

    return link ? fetchData(link) : body;
  });
}

function fetch(options) {
  return new Promise((resolve, reject) => {
    request(options, (error, response, body) => {
      if (error) {
        reject(error);
      } else {
        resolve(body);
      }
    });
  });
}

function findLink(body) {
  // return parsed link or null
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы