gpt4 book ai didi

javascript - 重复函数直到为真

转载 作者:行者123 更新时间:2023-11-29 09:55:13 25 4
gpt4 key购买 nike

我正在尝试调用一个 ajax 请求,直到它返回一个真值。我尝试了以下代码,但它没有返回任何结果,也没有在控制台中出现错误。知道我做错了什么吗?

function getUserData() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://api.example.com/data.json", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var resp = JSON.parse(xhr.responseText);
return resp.status;
}
}
xhr.send();
}

setInterval(function () {
if (getUserData() === "true") {
alert("true");
}
}, 10000);

最佳答案

getUserData 在内部调用一个异步函数,因此它在 AJAX 调用实际完成之前很久就返回了。

与其在 setInterval 循环中执行此操作,不如在失败情况下再次尝试调用 getUserData。例如:

function getUserData() {
var xhr = new XMLHttpRequest();

xhr.open("GET", "http://api.example.com/data.json", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var resp = JSON.parse(xhr.responseText);
if (resp.status) {
alert("true");
} else {
setTimeout(getUserData, 10000);
}
}
}
xhr.send();
}

getUserData();

关于javascript - 重复函数直到为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13466693/

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