【发布时间】:2016-05-08 14:29:08
【问题描述】:
function getUsername() {
$.get("http://www.roblox.com/mobileapi/userinfo", function(data) {
return data.UserName;
});
}
console.log(getUsername());
它说“未定义”,但每当我手动访问该链接时,它就会显示
{"UserID":74798521,"UserName":"AbstractMadness","RobuxBalance":7024,"TicketsBalance":21530,"ThumbnailUrl":"http://t2.rbxcdn.com/c189198f6c0689ce004d9438c70eb1bb","IsAnyBuildersClubMember":true}
如果我在函数内部执行 console.log(data.UserName),它也会记录名称。
【问题讨论】:
-
$.get是异步的。当您调用console.log(getUsername());时,它不知道要输出什么。 -
$.get 是一个异步函数调用。那意味着它不能返回一个值。您可以将返回值设置为全局变量,也可以触发事件。
-
您的 return 语句在匿名回调函数中,而不是从您的
getUserName()函数返回值。 -
我认为这是因为所有 AJAX 调用现在都是异步的。因此,您需要在返回正确答案时使用回调。我认为这是 .done() 函数,但我想不起来。
标签: javascript jquery roblox