jquery - 在javascript函数中使用$.post,无法为变量赋值?

标签 jquery post variables global

我尝试在函数中使用 $.post,获取结果,然后根据 $.post 回调的结果返回函数 true 或 false。但是,回调似乎是在父函数的返回事件之后发生的。

这是当前代码,ret 变量始终未定义,但如果我在 $.post 回调中对其进行alert(),它会返回正确的结果;

function elementExists(key, type, path, appid, pid){
    var ret;
    $.post('?do=elExists', {key: key, type: type, path: path, appid: appid, pid: pid},function(data){
        ret = data;                         
    });

    alert(ret);
    return ret;

}

最佳答案

正如您所发现的,该帖子是异步完成的。如果您希望它是同步的,则需要使用 ajax方法并将 async 参数设置为 false。然而,最好承认帖子是异步的并构建代码,以便回调执行的操作独立于调用帖子的方法。显然,您确实想做除警报之外的其他事情,但在不知道什么的情况下很难建议您如何重构它。

编辑:我知道您的代码正在检查某些内容是否存在,但检查它是有目的的。如果我们知道目的是什么,那么就可以建议如何在回调中完成该目的,以便重构该方法。

关于jquery - 在javascript函数中使用$.post,无法为变量赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/824431/

相关文章:

java - 禁用按钮刷新浏览器

java - 尝试连接 google qpx api 时出现 Http 错误 500

javascript - 从 onchange 事件处理程序中提取变量以用于其他函数

javascript - 内部的 Mustache 模板字符串呈现为 HTML

jquery - IE8 :Image disappearing while rotating using jQuery Rotate

c# - 如何在 C# 中通过 POST HttpWebRequest 发送 PDF

variables - 动态类型语言中 map /列表的变量命名约定

iphone - 依赖 UIPickerView

javascript - 如何将输入值分配给 jQuery 中的 url 参数?

javascript - 无法从输入表单发布到 javascript 数组?