这不会在功能之外打印?

时间:2016-01-30 23:29:37

标签: javascript jquery roblox

function getUsername() {
    $.get("http://www.roblox.com/mobileapi/userinfo", function(data) {
        return data.UserName;
    });
}

console.log(getUsername());

它说" undefined"但每当我手动访问链接时,它会显示

{"UserID":74798521,"UserName":"AbstractMadness","RobuxBalance":7024,"TicketsBalance":21530,"ThumbnailUrl":"http://t2.rbxcdn.com/c189198f6c0689ce004d9438c70eb1bb","IsAnyBuildersClubMember":true}

如果我在函数内部执行console.log(data.UserName),它也会记录名称。

2 个答案:

答案 0 :(得分:0)

这不是同步的。您正在打印该函数的返回,该函数不返回任何内容(因此未定义)。即使您要返回$.get电话,也不会得到您想要的内容。您需要登录回调函数或使用promise。

function getUsername() {
    return $.get("http://www.roblox.com/mobileapi/userinfo", function(data) {
        console.log(data.UserName);
        return data.UserName;
    });
}

getUsername().done(function(username) { console.log(username); });

答案 1 :(得分:0)

函数getUsername执行$.get请求,但它不返回任何内容,并在此处结束。

您必须在异步$.get请求的函数中记录您的数据。该函数(函数(数据))是一个回调函数。如果您的$.get请求的响应到达,则会调用它。