Как прилагать strings посередине просьбы Jquery?

В моем файле JS у меня есть следующий codigo...

 function get_estados_encuestas(this_, options, validador = null) {
        var buttonsPoll = '<div class="wizard-buttons">';
        $.get('home/get_estados', function(data) {

            $.each(data, function(index, item) {
                var selected = '';
                if (validador != null && validador === item['est_id']) {
                    selected = 'selected';
                }
                //$(selector).append(`<option value="${item['est_id']}" ${selected}>${item['est_nombre']}</option>`);
                buttonsPoll += `<a class="" role="button" style="float: left">${item['est_nombre']}</a>`;
            });



            buttonsPoll += `<a class="wizard-finish" href="#${this_.id}" data-wizard="finish" role="button" style="float: right">${options.buttonLabels.finish}</a>`;
        });

        buttonsPoll += '</div>';
        console.log(buttonsPoll)
    }

ПРОБЛЕМА

Когда я пробую возвращать переменную buttonPoll Только меня возвращает то, что снаружи get, и не то, что я прилагаю внутри get потому что оно последует за этим, и поскольку он мог бы решать это?

Я благодарен за интерес

0
задан 06.11.2019, 19:48
3 ответа

Только тебе показывает то, что вне $.get, потому что он асинхронный, console.log() выполнено до того, как get закончился.

soluciГіn в это состоит в том, чтобы использовать callback, или помещать console.log внутри get, так как то, что он скроллирует внутри того же самого, не является асинхронным.

TambiГ©n podrГ-схвати использовать одну Promise, я оставляю тебе пример:

let promise = new Promise((resolve, reject) => {


    $.get('home/get_estados', function(data) {

        $.each(data, function(index, item) {
            var selected = '';
            if (validador != null && validador === item['est_id']) {
                selected = 'selected';
            }
            //$(selector).append(`<option value="${item['est_id']}" ${selected}>${item['est_nombre']}</option>`);
            buttonsPoll += `<a class="" role="button" style="float: left">${item['est_nombre']}</a>`;
        });



        buttonsPoll += `<a class="wizard-finish" href="#${this_.id}" data-wizard="finish" role="button" style="float: right">${options.buttonLabels.finish}</a>`;
    });




});

promise.then((successMessage) => {


    buttonsPoll += '</div>';
    console.log(buttonsPoll)



});

, Если ты нуждаешься в большем количестве info promises, они обрежь находить acГЎ https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Promise

0
ответ дан 01.12.2019, 12:30
  • 1
    Привет @Adrian Godoy, спасибо за интерес, но я это осуществил и оно я не функционировало: C –  JDavid 06.11.2019, 21:23

TenГ©s, что изменять контекст, откуда ему верит в нее funciГіn, что манипулирует результатом Promise:

function get_estados_encuestas(this_, options, validador = null) {
  var buttonsPoll = '<div class="wizard-buttons">';

  function handlerEach(index, item) {
    var selected = '';
    if (validador != null && validador === item['est_id']) {
      selected = 'selected';
    }
    buttonsPoll += `<a class="" role="button" style="float: left">${item['est_nombre']}</a>`;
  }

  function handlerGet(data)  {
    $.each(data, handlerEach);
    buttonsPoll += `<a class="wizard-finish" href="#${this_.id}" data-wizard="finish" role="button" style="float: right">${options.buttonLabels.finish}</a>`;
  }

  $.get('home/get_estados', handlerGet);
  buttonsPoll += '</div>';
  console.log(buttonsPoll)
}

Есть другие способы менять контекст tambiГ©n.

0
ответ дан 01.12.2019, 12:30
  • 1
    Привет @Matias P. спасибо за интерес, но я это осуществил и оно я не функционировало: C –  JDavid 06.11.2019, 21:24

Проблема состоит в том, что не estГЎs имея в виду cГіmo функционирует она funciГіn $ .get (), Г©sta он работает способа asГ-ncrona а следовательно ты в ней funciГіn get то, что ты показываешь, является маршрутом, где находится ресурс, который нужно получать (url) и quГ© делать как только peticiГіn был отвечен ее. ОН quГ© делать знает себя как обещание, она funciГіn $ .get () обещает тебе, что он будет выполнять ее funciГіn, который ты переместил его, когда он получит попросивший ресурс.

ты Должен иметь в виду, что она ejecuciГіn рукописного шрифта он не задерживается когда ждут из-за ответа (allГ - что $ .get () был asГ-ncrona), из-за которого asГ - как estГЎ ты cГіdigo то, что ты показываешь:

  • funciГіn get_estados_encuestas верьте в переменную так называемый buttonsPoll с string.
  • показывает Себе в ней funciГіn get, что пошел в маршрут "home/get_estados", и что, получив данные, выполнил одну funciГіn, что обработал этот ответ (Г©sto не будет работать в Г©ste момент, а когда получит respues)
  • Seguidamente, изменяет переменную buttonsPoll, чтобы прилагать другую цепь текста.
  • возвращает переменную buttonsPoll (в Г©ste у одинокой точки есть начальная стоимость mГЎs она concatenaciГіn предыдущего шага)

В твоем случае ты можешь стрелять просто в процесс, который получает ресурс, и когда к тебе прибудут данные, обрабатываешь дату:

function get_estados_encuestas(this_, options, validador = null) {

        $.get('home/get_estados', function(data) {

            var buttonsPoll = '<div class="wizard-buttons">';

            $.each(data, function(index, item) {
                var selected = '';
                if (validador != null && validador === item['est_id']) {
                    selected = 'selected';
                }
                //$(selector).append(`<option value="${item['est_id']}" ${selected}>${item['est_nombre']}</option>`);
                buttonsPoll += `<a class="" role="button" style="float: left">${item['est_nombre']}</a>`;
            });

            buttonsPoll += `<a class="wizard-finish" href="#${this_.id}" data-wizard="finish" role="button" style="float: right">${options.buttonLabels.finish}</a>`;
            buttonsPoll += '</div>';
            console.log(buttonsPoll)
        });


    }
0
ответ дан 01.12.2019, 12:30
  • 1
    Привет @Zerocool. спасибо за интерес я это осуществил и функционируй, но есть как pequeñ или proeblema и дело в том, что он возвращается с get и не с функции, если, тогда серьезная идея в том, чтобы возвращаться с функции, поэтому верит vairbale buttonsPoll снаружи get –  JDavid 06.11.2019, 21:25
  • 2
    С funció n ты сможешь делать это из-за có mo функционирует $ .get () то, чего ты можешь добиваться, состоит в том, чтобы делать, что funció n я возвратил тебе это обещание и делать что-то с нею –  zerocool 06.11.2019, 21:53

Теги

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