mr_qpdb
@mr_qpdb
⏱ - is not eternal

У меня есть 2 ajax запроса. Как 2-ой отправлять в интервальном режиме 2 сек?

У меня есть два ajax запроса. Первый получает массив с ID пользователей, и перебирает их по каждому. А второй на полученные ID отправляет заявку на добавление в друзья по api vk.
Но он отправляет их всех разом, чего не надо делать. Мне нужно, чтобы второй запрос отправлял заявку в друзья интервалом в 2 сек.

Код выглядит так:

// Переменные
let $start = document.querySelector('#start')

// Прослушки
$start.addEventListener('click', startAdd)

// Функция
function startAdd() {
    let i = 0;
    let all = 0;

    // Ваш токен
    $token = 'token';

    // Фильтр
    $filter = 'mutual';

    // Поля
    $fields = 'online,sex,common_count';

    // Получаем массив с ID пользователей
    $.ajax({
        url: 'https://api.vk.com/method/friends.getSuggestions?filter='+$filter+'&fields='+$fields+'&count=500&access_token='+$token+'&v=5.103',
        type: 'GET',
        dataType: 'jsonp',
        crossDomain: true,
        success: function(data){
            // Перебираем ID
            data.response.items.map(function (a) {
                console.log('начало')
                // Добавляем пользователей по ID
                $.ajax({
                    url: 'https://api.vk.com/method/friends.add?user_id='+a.id+'&v=5.69&access_token='+$token,
                    type: 'POST',
                    dataType: 'jsonp',
                    crossDomain: true,
                    success: function(data){
                        document.body.innerHTML = "Добавленно: " + i + " из " + a.lenght
                        console.log(data)
                    }
                    })
            })
        }
        })
    
}

Как видите, что я уже пробовал использовать setInterval, но он не работает.
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
@StockholmSyndrome
let index = 0; 
const items = data.response.items;
const timer = setInterval(() => {
  if (index === items.length) {
    clearInterval(timer);
    return;
  }
  
  $.ajax({
    url: '...?user_id=' + items[index].id + '...', 
    // ...
  });
  
  index++;
}, 2000);


https://qna.habr.com/help/rules 3.8
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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