使用while循环在等待AJAX​​响应时暂停javascript?

时间:2014-04-19 22:06:11

标签: javascript jquery ajax

我需要在继续代码之前等待ajax响应,否则变量(数据)是未定义的。重写代码以将下一部分全部放在自己的函数中是很困难的。

以下while循环只是崩溃了浏览器,任何想法做类似的事情,但这有效吗?

name = getName(id);

while (name == null || name == undefined) {
    //wait for response before continuing
} 
...

2 个答案:

答案 0 :(得分:3)

将ajax更改为工作同步而非异步:

JQuery ajax

将async属性设置为false。默认值为true。

$.ajax({
  url: "test.html",
  async: false,
  success: function(result) { // it will get here synced and not asynced!!! },
  ...........
});
顺便说一下,自从你执行阻止操作以来,不建议以这种方式工作。这就是它返回承诺的原因。

答案 1 :(得分:0)

您必须在后端响应后使用回调

例如jQuery

$.ajax({
    url:'/url',
    success : function(response){
           //your code here
    }

});