gpt4 book ai didi

javascript - 如何使用 jQuery 将 ajax 调用的结果存储在函数中?

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

我有以下代码:

function checkPermission(user) {
var result = 'default';
$.get('/mymodule/checkPermission.php?user=' + user, function(data) {
result = data; // does not store data into result, why ?
if (result == 'no') {
$('.sorry_msg').show();
}
});
alert(result); // shows "default".
return result == 'yes';
}

您能解释一下为什么这不起作用吗?问题是我无法将data 变量存储到result 中,请参阅代码中的注释。我想 是因为匿名函数 ,但我对 javascript 的了解还不足以理解到底发生了什么。

另外,如何根据 ajax 调用的结果在 checkPermission 函数中返回 truefalse

最佳答案

您没有得到预期的结果,因为 ajax 回调函数是异步执行的。这意味着该进程不会等待 ajax 调用完成。因此,在 ajax 调用执行回调函数之前,外部函数 checkPermission 已经终止,因此它的返回值不会被 ajax 回调更改。

@皮诺尚:
我已经看过您建议的解决方案,但我建议不要使用同步 ajax 请求,因为这会在浏览器必须等待 ajax 请求结果的时间内阻塞整个用户界面。我建议您重新考虑您的执行策略,并围绕异步执行的 ajax 请求构建它。

关于javascript - 如何使用 jQuery 将 ajax 调用的结果存储在函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7784678/

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