我在 Javascript-Jquery 中有以下代码片段:
var result = "";
$.ajax({
type: 'POST',
url: 'update.php',
data: { 'val': $val }
})
.done(function(data) {
alert(data); // shows right response
result = data;
alert(result); // shows right response
});
alert(result); // shows nothing
即使我在回调中初始化了结果,但当我警告结果变量时我什么也没得到(它仍然是“”)?为什么是这样?
最佳答案
这是因为 ajax 调用是异步运行的。仅仅因为第二个警报是在 ajax 调用之后,您仍然必须 a: 编写一个回调方法以在调用完成时触发,或者 b: 同步完成 ajax 调用。有关 async 属性及其描述,请参阅 jquery ajax 文档。
关于javascript - Jquery:变量未在回调中初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20233087/