gpt4 book ai didi

javascript - 从嵌套的 $.getJSON 返回值?

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

我有这样的东西:

var someJSON = function(){

// Calculate some stuff here

$.ajax({
dataType: "json",
url: "http://somewebsite.com/api/?callback=?",
async: false,
success: function(data) {
return data; // How can I return this so that someJSON gets this value?
}
});

}();

console.log(someJSON); // I want someJSON to be = data from the ajax call

本质上,我希望 someJSON 最终成为通过 ajax 返回的 json 数据的值。如何从嵌套的 $.ajax 调用中返回值?我可以使用某种回调来传回值吗?

此外,我还使用了 async: false ,以便在 someJSON 设置值之前,脚本的其余部分不会尝试执行。这是正确的方法吗?

最佳答案

由于您使用的是async: false,因此您可以简单地设置一个变量并从原始函数中返回它:

var someJSON = function(){
var returnVal;

// Calculate some stuff here

$.ajax({
dataType: "json",
url: "http://somewebsite.com/api/?callback=?",
async: false,
success: function(data) {
returnVal = data;
}
});
return returnVal;
}();

但是,您应该认真考虑是否真的需要使用同步 AJAX,因为这可能会阻塞浏览器。您应该学习使用异步调用的正确方法。参见

How do I return the response from an asynchronous call?
Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference

关于javascript - 从嵌套的 $.getJSON 返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28391528/

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