gpt4 book ai didi

Javascript 程序未正确执行

转载 作者:行者123 更新时间:2023-11-29 17:45:54 25 4
gpt4 key购买 nike

我是 javascript 的新手,但我无法解决这个问题。我有一个为游戏点赞的功能:

function upVoteGame(name) {
$.get("/get_gameValues", function(data) {
var alreadyExist = false;
var noVotes = false;
var games;
games = data;
for (var i = 0; i < games.length; i++) {
if (name === games[i].gameName) {
alreadyExist = true;


voteOperations();

if (userLoggedIn == false) {
alert("second");
swal("Cannot post votes", "Please log in or register to vote", "error");
}

if (noVotesLeft == false && userLoggedIn == true) {
$.ajax({
url: '/editVotes/' + games[i]._id,
type: 'PUT',
data: {
likes: games[i].likes + 1,
totalVotes: data[i].totalVotes + 1
},
success: function(result) {
alert(games[i].likes + 1);
}
});
}
refreshGameValues();
break;
}
}

//This is for us Developers!
if (!alreadyExist) {
$.post("/add_game_to_dB", {
gameName: name
}, function(result) {
alert("Introduced " + name);
});
}
});
}

现在我有了更新用户剩余投票的功能,voteOperations():

function voteOperations() {
$.get("/users/get_current_user", function(data) {
//var votes = 5;
for (var i = 0; i < data.length; i++) {
votesRemaining = data[i].votesRemaining;
userLoggedIn = true;
alert("votes left : " + votesRemaining);

if ((votesRemaining - 1) < 0) {
swal("No votes remaining", "Please wait 24 hours to get more votes", "error");
noVotesLeft = true;
}
if (noVotesLeft == false) {
$.ajax({
url: '/users/updateUserDetails/' + data[i].user_name,
type: 'PUT',
data: {
votesRemaining: votesRemaining - 1
},
success: function(result) {}
});
}
}
});
}

我的问题很简单。在 upVoteGame(name) 函数中,我希望 voteOperations() 在其下方的 if 循环之前执行。但是,当我运行代码时,下面的 if 循环首先执行并警告用户他们没有登录。当用户登录时,userLoggedIn 设置为 true,但是 if 循环首先执行并告诉他们他们没有登录,然后执行 voteOperations() 函数。我不知道为什么会这样。我该如何解决这个问题,以便 voteOperations 在 if 循环之前执行?

最佳答案

这是因为 voteoperations 函数有一个异步的 get 请求。您将需要一个回调函数,您应该在其中包含 if 条件

你可以试试:

function upVoteGame(name) {
vote(afterGet);
}

afterGet() {
if condition here
}

function vote(callback) {
$.get .... {
//after getting data
callback();
}
}

关于Javascript 程序未正确执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49875034/

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