如何将值从Ajax传递到另一个函数

时间:2018-10-04 07:52:36

标签: javascript ajax

我需要帮助来了解如何从ajax功能导出值并将其导入到其他函数中 例子

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

                   console.log(result)
                  }

              }, "json");
          };

现在,我们需要在波纹管功能中调用此“结果”,但是它不起作用,console.log始终显示未定义。

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

             latlon= getlanlon()
               console.log(latlon)


}

1 个答案:

答案 0 :(得分:2)

您需要回调,promise或deferred对象:

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)    
    })
}

或使用Deferred对象。

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);
        })
    })
}