在ajax成功函数之外使用变量

时间:2015-02-14 20:56:24

标签: javascript php jquery ajax

我在一个函数

中有一组超时函数
function myFunction()
{
   var data;

   setTimeout(function(){
       $.ajax({
         //My Ajax Junk
         success: function(data) {
            var data = data.trim();
            // I want to be able to use this later on.
         }
       }):
   }, 6000);

   setTimeout(function(){
      var shipping = 'f_name='+f_name+data;
      // Append data from previous call to shipping
   }, 12000);
}

我想从ajax成功函数中检索数据,然后在下一个超时函数中使用它,方法是将它附加到运输变量。我已经在所有函数之外声明了变量数据,然后尝试将成功数据添加到它。当我提醒出货变量时,它没有显示任何额外的数据(数据应该添加什么)。

数据正在返回,因为我可以在Google Chromes网络标签中看到它。

如何设置要在整个函数中使用的变量!?!?!?!?

提前谢谢。

此外,由于超时功能,成功函数在调用之前返回数据。我和他们一起玩这个例子。

3 个答案:

答案 0 :(得分:0)

这是一个糟糕的方式:提升您的var data;并将var data = data.trim();更改为tdata = data.trim();来自该功能:

var tdata;
function myFunction(){

    setTimeout(function(){
       $.ajax({
         //My Ajax Junk
         success: function(data) {
            tdata = data.trim();
            // I want to be able to use this later on.
         }
       }):
    }, 6000);

    setTimeout(function(){
        var shipping = 'f_name='+f_name+tdata;
        // Append data from previous call to shipping
       }, 12000);

}

答案 1 :(得分:0)

global_data等全局变量使用其他名称,并在ajax中使用global_data = data.trim()

分配数据值

答案 2 :(得分:0)

function myFunction()
{
   var data;

   setTimeout(function(){
       $.ajax({
         //My Ajax Junk
         success: function(resp) {
            data = resp.trim(); // Dont declare it inside
            // I want to be able to use this later on.
         }
       }):
   }, 6000);

   setTimeout(function(){
      var shipping = 'f_name='+f_name+data;
      // Append data from previous call to shipping
   }, 12000);
}