gpt4 book ai didi

javascript - jQuery AJAX 请求中的变量范围?

转载 作者:行者123 更新时间:2023-11-28 19:45:57 24 4
gpt4 key购买 nike

好吧,我完全困惑了。我确信这是一个范围界定或关闭的事情,但有人可以解释为什么吗

$(document).ready(function() {
var test = 0;
var whatev = [1,2,3,4,5];
$.each(whatev, function(i, v) {
test += 1;
});
alert(test);
});

警报“5”和

$(document).ready(function() {
var test = 0;
var whatev = [1,2,3,4,5];
$.each(whatev, function(i, v) {
$.ajax('http://example.com/').done(function(data) {
test += 1;
});
});
alert(test);
});

警报 0?为什么 $.each 调用中的匿名函数可以访问 test,但 ajax 调用的匿名函数却不能?匿名函数在哪里定义?

最佳答案

JQuery each 的回调是同步的。

JQuery Ajax (异步 javascript 和 xml)的回调是异步的。

如果你希望ajax函数是同步的,你可以这样做:

$.ajax({
type: "GET",
url: "http://example.com/",
async: false
})

关于javascript - jQuery AJAX 请求中的变量范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24286472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com