这是我的代码:
var name;
function getFBName(username) {
$.getJSON('http://graph.facebook.com/' + username, function (d) {
name = d.name;
});
}
getFBName("zuck");
console.log(name);
我几个小时以来一直在挣扎,但我无法获取 getFBName
函数返回用户名。
这是 JSON 顺便说一句:
{
"id": "4",
"first_name": "Mark",
"gender": "male",
"last_name": "Zuckerberg",
"link": "https://www.facebook.com/zuck",
"locale": "en_US",
"name": "Mark Zuckerberg",
"username": "zuck"
}
最佳答案
正如@jwatts1980所说,这是一个执行顺序的问题。 $.getJSON
将在响应到达客户端之前立即返回,因此当您运行 console.log
时,它仍然会等待。一种可能的解决方案是:
function getFBName(username) {
$.getJSON('http://graph.facebook.com/' + username, function (d) {
console.log(d.name);
});
}
getFBName("zuck");
这将正确记录Mark Zuckerberg
。如果您有多种处理输出的方法,那么设置一个回调函数也可能会很有趣:
function getFBName(username, callback) {
$.getJSON('http://graph.facebook.com/' + username, function (d) {
callback(d.name);
});
}
function handleName(name) {
// Do a lot of things here
console.log(name);
}
getFBName("zuck", handleName);
关于javascript - 获取JSON返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23143092/