我有这样的事情:
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
有一个值集。这是做到这一点的正确方法吗?
@PHPglue他使用'async:false',所以它不是异步的。 – Barmar 2015-02-08 07:14:33
请不要使用同步ajax。你的用户会感谢你不锁定他们的浏览器。 – jfriend00 2015-02-08 07:18:57
当您从回调函数返回数据时,它会回到回调的调用者(进入ajax的内部),而不是函数的返回值。无论是同步还是异步,从成功处理程序返回值都不是向外界传递ajax值的方式。 – jfriend00 2015-02-08 07:19:54