javascript - 等待 Ext.Ajax.request 成功响应后再设置变量

标签 javascript ajax json extjs asynchronous

下面您将看到一些代码,用于为 extjs 4 应用程序设置当前登录的用户。如果我未注释警报,则代码似乎会等到警报被接受后才继续执行(看起来)。这样就有足够的时间让异步调用成功完成。如果我注释掉该警报,则变量“employeeFilter”永远不会被设置,因为 AJAX 调用没有及时返回。在这种情况下,它将“employeeFilter”设置为 null。我该如何解决这个问题,以便它等到 AJAX 响应成功返回?

var loggedInUserId = null;
Ext.Ajax.request({
    url: '/Controls/UserList/UserService.asmx/GetLoggedInUserId',
    method: 'POST',
    jsonData: { 'x': 'x' },
    success: function (response, opt) {
        loggedInUserId = Ext.decode(response.responseText).d;
    },
    failure: function (response) {
    }
});

//alert(loggedInUserId);
var employeeFilter = loggedInUserId;
var projectFilter = '-1';

最佳答案

我会这么做的。

var employeeFilter;        
Ext.Ajax.request({
    url: '/Controls/UserList/UserService.asmx/GetLoggedInUserId',
    method: 'POST',
    jsonData: { 'x': 'x' },
    success: function (response, opt) {
        employeeFilter = Ext.decode(response.responseText).d;
        //Do here whatever you need to do once the employeeFilter is set. probably call a function and pass the employee filter as parameter. 
    },
    failure: function (response) {
    }
});

var projectFilter = '-1';

关于javascript - 等待 Ext.Ajax.request 成功响应后再设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12810076/

相关文章:

javascript - ngAnimate 一个 DOM 元素,它是使用 UI Router 呈现的模板的一部分

javascript - 如何使 jquery 插件可重用?

javascript - 根据下拉选择显示/隐藏 <tr> - angularjs

javascript - 数据表不应用每页过滤

yii - CJSON::编码一个javascript函数

Javascript:将单引号附加到单个对象结果中

ruby-on-rails - 使用 Rails 3 link_to 执行 ajax 回调的正确方法是什么

jquery - 使用 AJAX 和 Jquery 保存 tinymce 编辑器

javascript - 如何将 JSON 数组转换为 JS?

json - Typescript with TypeLite - 运行时类型检查