Показать сообщение отдельно
  #1 (permalink)  
Старый 22.10.2023, 15:47
Интересующийся
Отправить личное сообщение для kuliev Посмотреть профиль Найти все сообщения от kuliev
 
Регистрация: 14.10.2016
Сообщений: 10

Ajax и рекурсия
Доброго времени суток.

function getOption(id = null){

      let option = '';
      $.ajax(
      {
        url: './ajax.php',
        type: 'post',
        dataType: 'json',
        data: {
          id: id
        },
        success: function(data){
          if(data.has_next === true){
            getOption(data.result[data.result.length - 1].id)
            
            for(i = 0; i < data.result.length; i++){
              option += '<option value="' + data.result[i].id + '">' + data.result[i].title + '</option>';
            }

          } else {
            for(i = 0; i < data.result.length; i++){
              option += '<option value="' + data.result[i].id + '">' + data.result[i].title + '</option>';
            }
          }
        }
      });
  }


Вот кусок рекурсивной функции, она вызывает саму себя до тех пор пока data.has_next === true. Отправляя запрос на сервер - запрашиваем опции для выпадающего списка, сервер в свою очередь отдает списки частями (по сто штук в списке, и если есть продолжение то сервер возвращает has_next = true)

Так вот, если смотреть в консоле, то данные приходят в ответ на запрос. Вопрос в том как получить эти данные если я вызываю данную функцию из тела другой функции, а возвратить полученные данные из рекурсии не могу.
Ответить с цитированием