当前位置: 首页 > 面试题库 >

变量未从AJAX函数返回

徐栋
2023-03-14
问题内容

随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是,这样做不会返回任何值。

数据不为空-如果我警告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的可能性吗?


问题答案:

您不能这样做:由于调用是异步的,因此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);
});


 类似资料:
  • 问题内容: 随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是通过这样做,函数的返回不会返回任何值。 数据不为空-如果我警告js文件中的值,它们在那里! 功能: 1 .js文件中的函数(在执行之前包含) 因此,这是执行部分: 并且测试是空的…我已经尝试了不同的编写方式,但是我想我误解了js的可能性吗? 问题答案: 您不能这样做:由于调用是异步的,因此get_data函数无法返

  • 问题内容: 我想回到别处外使用的 范围 的 我猜想这是与范围有关,但它似乎不相同的方式工作 C# 不 问题答案: 是的,我之前的答案不起作用,因为我没有对您的代码给予任何关注。:) 问题在于匿名函数是一个回调函数- 即getJSON是一个异步操作,它将在某个不确定的时间点返回,因此即使变量的范围不在该匿名函数(即闭包)之外,它也会没有您认为应该的价值: 要使用由getJSON调用设置的studen

  • 这是我的代码: 还有php脚本 无论出于什么原因,php都不会从ajax脚本中接收变量。PHP能够向ajax成功函数发送变量,并且Apache日志中没有错误。有人能告诉我我没有做错什么吗?我还担心apache也会出问题。

  • 问题内容: 我想知道是否存在一种实现类似于map getter的功能的方法:它返回返回值作为第一个参数,(可选地分配)第二个值作为第二个参数。因此,我需要可以通过以下方式调用的函数: 问题答案: 不,它无法完成,唯一的选择是返回一个指针并检查它是否为nil。

  • 问题内容: 如何从函数内部返回值? 这是我的基本设置: 问题答案: 使用回调函数,这是JavaScript的方式: