Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GetJSON返回数据_Javascript_Jquery - Fatal编程技术网

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.