Radzhab
@Radzhab

Как выполнить несколько GET-запросов последовательно?

В цикле делаю n-запросов к серверу. Каждый запрос выполняется больше 2-х минут. Все вроде бы хорошо, но ассинхронность jquery ставит мне палку в колёса. Данный код почему то выполняется ассинхронно, хотя я специально сделаю синхронные вызовы. Что я делаю не так?

for (let i = 0; i < counter; i++) {
    (function(index) {
      $.ajax({
          url: "/suggestions",  
        type: "GET",
        data: {pagetoken:pagetoken_, usertoken:usertoken_, adstoken:adstoken_,parentbm:parentbm_, proxy:proxy_},
        success: function(data) {
           //вывод данных
        },
        timeout: 300000 

      })
    })(i);
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Есть маленький нюанс. Если все ваши запросы будут работать синхронно, то невозможно будет ничего сделать на странице 2*n минут.
Самый простой способ выполнить запросы друг за другом - вызывать следующий в success предыдущего.
let requestsList = [
  {url: 'https://...', data: {...}},
  {url: 'https://...', data: {...}}
];
function request(list) {
  $.ajax({
    url: list[0].url,  
    type: "GET",
    data: list[0].data,
    success: function(data) {
      //вывод данных
      if (list.count > 1) {
        request(list.slice(1));
      }
    },
    timeout: 300000 
  });
}
request(requestList);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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