gpt4 book ai didi

javascript - 如何在 JavaScript 函数中设置和返回变量?

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

先看例子,然后你就能明白我的问题了。

var x;
function checkTime() {
$.ajax({
type: 'GET',
url: 'http://www.example.com/time.php',
data: test,
dataType:'json',
success: function (data) {
if (data == 0){
x = 'true';
} else if (data == 1){
x = 'false';
}
}
});
}

checkTime();
alert (x);

警报将是未定义

我需要在 checkTime 函数内设置 x 并在函数外部获取它

即使我这样做:

var x = checkTime();
alert (x);

我仍然得到未定义

而且我只需要检查真假,也许还有另一种方法可以做事。我也尝试过:

...
if (data == 0){
return true;
} else if (data == 1){
return false;
}
...

但我不知道如何检查。

基本上我需要这样的东西:

if (x == 1){//if(x == true) //做一点事}

有什么想法吗?

谢谢

最佳答案

发生这种情况是因为 .ajax() 的默认行为是异步。当您的 alert() 触发时,x 尚未设置。您需要使用 aync=false 设置 .ajax() 或传入回调函数以在 Ajax 请求完成时调用,例如

function checkTime(callback) {
$.ajax({
type: 'GET',
url: 'http://www.example.com/time.php',
data: test,
dataType:'json',
success: function (data) {
var x = '';
if (data == 0){
x = 'true';
} else if (data == 1){
x = 'false';
}
// Call the callback function with 'x'
callback.call(null, x);
}
});
}

然后按如下方式使用它:

checkTime(function (x) {
alert(x);
});

关于javascript - 如何在 JavaScript 函数中设置和返回变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9207893/

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