Javascript GetJSON返回数据
这是我的密码:Javascript GetJSON返回数据,javascript,jquery,Javascript,Jquery,这是我的密码: var name; function getFBName(username) { $.getJSON('http://graph.facebook.com/' + username, function (d) { name = d.name; }); } getFBName("zuck"); console.log(name); 几个小时以来我一直在挣扎,但我无法使用getFBName函数返回用户的姓名 这是JSON btw: { "id"
var name;
function getFBName(username) {
$.getJSON('http://graph.facebook.com/' + username, function (d) {
name = d.name;
});
}
getFBName("zuck");
console.log(name);
几个小时以来我一直在挣扎,但我无法使用getFBName
函数返回用户的姓名
这是JSON btw:
{
"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");
这将正确地记录马克·扎克伯格
。如果您有多种处理输出的方法,那么设置回调函数也可能很有趣:
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);
正如@jwatts1980所说,这是一个执行顺序的问题$.getJSON
将在响应到达客户端之前立即返回,因此当您运行console.log
时,它仍将等待。一种可能的解决办法是:
function getFBName(username) {
$.getJSON('http://graph.facebook.com/' + username, function (d) {
console.log(d.name);
});
}
getFBName("zuck");
这将正确地记录马克·扎克伯格
。如果您有多种处理输出的方法,那么设置回调函数也可能很有趣:
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);
AJAX调用不是同步的(异步Javascript和XML)。函数调用是。函数完成后,返回值将从AJAX返回。请尝试从浏览器访问,并告知结果。如果使用fiddler捕获响应会更好。AJAX调用不是同步的(异步Javascript和XML)。函数调用是。函数完成后,返回值将从AJAX返回。请尝试从浏览器访问,并告知结果。如果您使用fiddler捕获响应会更好。是的,使用回调方式+1是的,使用回调方式+1.