变量不会从Ajax函数返回

变量不会从Ajax函数返回

随着我的框架的发展,我决定把它分割成文件,而不是把它留在主设计文件中。但是,通过这样做,函数的返回不会返回任何值。

数据不是空的-如果我警告js文件中的值,它们就在那里!

职能:

1.js文件中的函数(在执行之前包含)

             var lock_get = 0;
             function get_data(data, destination) 
             {

                if (lock_get == 0)
                {
                    lock_get = 1;
                    $.ajax({
                        type: "POST",
                        url: destination,
                        async: true,
                        data: data,
                        success: function(data) 
                        {
                            lock_get = 0;
                            if (data)
                            {
                                return data;
                            }
                        }
                    });
                }
             };

下面是执行部分:

    var test = get_data(data, destination);
    notice(test);

测试是空的.。我已经尝试过不同的写作方法,但我想我已经意识到了js的可能性?


千万里不及你
浏览 381回答 2
2回答

一只斗牛犬

您不能这样做:由于调用是异步的,所以get_data函数不能返回Ajax调用的结果。您应该做的是为get_data函数提供一个回调,并在回调中处理结果。function get_data(data, destination, callback)           {             if (lock_get == 0)             {                 lock_get = 1;                 $.ajax({                     type: "POST",                     url: destination,                     async: true,                     data: data,                     success: function(data)                      {                         lock_get = 0;                         if (data && callback)                         {                             callback(data);                         }                     }                 });             }          };就这样说:get_data(data, destination, function(test){    notice(test);});
打开App,查看更多内容
随时随地看视频慕课网APP