gpt4 book ai didi

javascript - jquery : Order of execution

转载 作者:行者123 更新时间:2023-11-28 16:12:06 24 4
gpt4 key购买 nike

以下是我的代码:

$(document).on("click",".ball_link", function makeDiv(){
function fetchLevels(){
$.getJSON('fetch_level.php',{level: clicked_ball}, function(data) {
$.each(data, function(i,name) {
alert(name.level_id); //Line 1
});
});
}
fetchLevels();
alert(name.level_id); //Line 2
while (//some condition){
alert("hi 2"); //Line 3
}
});

所需的执行顺序:

第 1 行

第2行(与第1行的值相同)

第 3 行

实际执行顺序:

第 2 行(值:未定义)

第 3 行

第 1 行(正确值)

如何控制这些行的执行顺序以获得具有正确值的所需行?

最佳答案

由于 ajax 调用是异步的,您可以移动成功回调中的所有代码,或者使用延迟对象来处理正确的执行顺序

function fetchLevels() {

$.getJSON('fetch_level.php', { level: clicked_ball })

.done(function(data) {
$.each(data, function(i,name) {
alert(name.level_id); //Line 1
});

alert(name.level_id); //Line 2
while (//some condition) {
alert("hi 2"); //Line 3
}
});
}

fetchLevels();

或者您也可以使用这个

function fetchLevels() { 
return $.getJSON('fetch_level.php', { level: clicked_ball })
}

$.when(fetchLevels()).done(function(data) {
$.each(data, function(i,name) {
alert(name.level_id); //Line 1
});

alert(name.level_id); //Line 2
while (//some condition) {
alert("hi 2"); //Line 3
}
});
})

关于javascript - jquery : Order of execution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12562756/

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