gpt4 book ai didi

Javascript 回调 - 将变量传递给它们

转载 作者:行者123 更新时间:2023-12-03 05:50:25 30 4
gpt4 key购买 nike

我无法让以下代码工作。假设 ajax 调用有效,并且 msg['username'] 预设为 'john'。我想我对如何将变量传递给回调感到困惑。编辑:我认为我的主要困惑是如何从 Ajax 中获取“msg”变量。看起来 Ajax 有一个“硬连线”成功方法,如果您想随后使用 ajax 查询中的数据,则几乎必须使用该方法 - 并且该方法是唯一可以访问 ajax 调用结果的方法。代码如下:

<script>
$(document).ready(function(){
function freedome(horace){
$.ajax({
url: "RESPONDERdetails.php",
type: "GET",
dataType: "json",
data:{thing:31}
});
horace(msg);
}

function callbacker(msg){
alert("I am callback");
name = msg["username"];
alert(name);
}

freedome(callbacker(msg));
});
</script>

最佳答案

您只想使用freedome(callbacker);。在 JavaScript 中,函数可以被视为变量。因此,我们需要做的就是将函数本身作为参数传递。

这使得 horace 成为一个函数,这样当您执行 horace(msg); 时,callbacker 将使用 调用msg 作为参数。

此外,msg 从未在示例中的任何位置声明,并且您的 horace(msg); 将在 AJAX 调用完成之前运行。您需要在此处使用 AJAX 调用的回调。

$(document).ready(function(){
function freedome(horace){
$.ajax({
url: "RESPONDERdetails.php",
type: "GET",
dataType: "json",
data:{thing:31},
success: function(msg){
horace(msg);
}
});
}

function callbacker(msg){
alert("I am callback");
name = msg["username"];
alert(name);
}

freedome(callbacker);
});

关于Javascript 回调 - 将变量传递给它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40179285/

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