为了账号安全,请及时绑定邮箱和手机立即绑定

变量不会从Ajax函数返回

变量不会从Ajax函数返回

千万里不及你 2019-06-21 16:19:47
变量不会从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的可能性?
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超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);});


查看完整回答
反对 回复 2019-06-21
  • 2 回答
  • 0 关注
  • 380 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信