Как передать значения из Ajax в другую функцию - PullRequest
0 голосов
/ 04 октября 2018

Мне нужна помощь, чтобы понять, как экспортировать значения из функции ajax и импортировать их в пример другой функции

 function getlanlon(){
                  $.ajax({
                  type: "GET",
                  url: "{{URL::to('/')}}/getlatlng",
                  //data: {value: 0},
                  //async: true,
                  success: function(result){

                   console.log(result)
                  }

              }, "json");
          };

Теперь нам нужно вызвать этот «результат» в функцию ниже, но она не работает, console.log всегда показывает undefined.

          map.on('load', function () {

             latlon= getlanlon()
               console.log(latlon)


}

1 Ответ

0 голосов
/ 04 октября 2018

Вам нужен обратный вызов, обещание или отложенный объект:

function getlanlon(callback){
    $.ajax({
        type: "GET",
        url: "{{URL::to('/')}}/getlatlng",
        //data: {value: 0},
        //async: true,
        success: function(result){
            if(callback){
                callback(result);
            }
            console.log(result)
        }

    }, "json");
};

map.on('load', function () {

    getlanlon(function(latlon){
        console.log(latlon)    
    })
}

Или с использованием отложенного объекта.

function getlanlon(){
    var deferred = $.Deferred();
    
    $.ajax({
        type: "GET",
        url: "{{URL::to('/')}}/getlatlng",
        //data: {value: 0},
        //async: true,
        success: function(result){
            deferred.resolve(result);
            console.log(result)
        }

    }, "json");
    
    return deferred;
};

map.on('load', function () {
    
    getlanlon()
        .then(function(latlon){
            console.log(latlon);
        })
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...