我需要在继续代码之前等待ajax响应,否则变量(数据)是未定义的。重写代码以将下一部分全部放在自己的函数中是很困难的。
以下while循环只是崩溃了浏览器,任何想法做类似的事情,但这有效吗?
name = getName(id);
while (name == null || name == undefined) {
//wait for response before continuing
}
...
答案 0 :(得分:3)
将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
}
});