javascript - 在执行其他操作之前从 $.post 设置变量

标签 javascript jquery ajax

我必须从数据库加载一些数组数据,我是这样做的:

var priorities, users;

$.post("http://"+ document.domain + "/priority",
                function(dat){
                priorities = dat;                       
});

$.post("http://"+ document.domain + "/users",
                function(dat){
                users= dat; 
});

然后我想在插件中使用这个变量,我意识到在设置这个变量之前插件就会被触发,即使这个代码位于 JS 文件的开头。

有没有更好的方法从数据库加载数据数组? 如果没有,我该如何在执行任何其他代码之前设置此变量?

谢谢。

最佳答案

$.post("http://"+ document.domain + "/priority",
      function(priorities){
            $.post("http://"+ document.domain + "/users",
                function(users){
                DoSomething(priorities, users);
            });                 
       });

function DoSomething(priorities, users){
// User Priorities and Users here
}

其他选择是同步调用ajax,但我不建议这样做:)

编辑:

var priorities, users;

function getPriority(){
    $.post("http://"+ document.domain + "/priority",
            function(dat){
            priorities = dat;                       
    });
}

function getUsers(){
    $.post("http://"+ document.domain + "/users",
            function(dat){
            users= dat; 
    });
}

var dfd = $.Deferred();
dfd
.done([getPriority, getUsers])
.done(function() {
     //here you will have priorities and users
});

dfd.resolve();

关于javascript - 在执行其他操作之前从 $.post 设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13589714/

相关文章:

javascript - 使用 JQuery 删除空的 tbody

javascript - 使用 ajax 时 Django View 不渲染模板

javascript - 大文件的 filereader api

javascript - 与 JavaScript 生成的 HTML 交互

javascript - 在 ImageFlow Slider 中使用 <div> 作为幻灯片而不是图像

Jquery 或 Ajax 下拉 div

javascript - Litelement 将对象作为 html 属性传递

javascript - jQuery.click() 与 onClick

javascript - chrome扩展在ajax之后运行脚本

javascript - 尝试使用 AJAX 提交而不刷新,失败无提示