这个问题其实是我对jquery理解不透造成的。
我尝试将一些代码放入函数中以便多次使用。
function actors(query){
$.get("websit.com?title=" + query + "&type=json", function(html){
var result = html;
var obj = eval ("(" + result + ")");
var actor = obj[0].actors;
return actor; //as far as im aware this does nothing
});
return 0; // gets here and returns zero, returning actor here returns undefined
}
actor 变量保存了我需要的信息,但是我正在努力将变量从函数中取出。
由于内部函数,它将运行并到达 return 0;
如果我尝试将变量分配给内部函数,它将返回一个对象而不是返回变量。
任何正确方向的解决方案或指针将不胜感激。
最佳答案
这个问题每月被问 1000 次。您不能使异步调用像同步调用一样运行。这就是回调的用途。
你也用jQuery,没必要用eval!设置正确的内容类型,它将为您解析数据。
回调的基本思想
function actors(query, callback){
$.getJSON("websit.com?title=" + query + "&type=json", function(data) {
var actor = data[0].actors;
callback(actor);
});
}
function processResults(info){
console.log(info);
}
actors("Something", processResults);
关于javascript - 从 get ajax 调用中获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211186/