$(document).ready(function () {
var value = getParmsVals()["search"];
$.getJSON('/api/search/GetQuestionByKey/' + value, function (jsonData) {
$(jsonData).each(function (i, item) {
var name = getAuthorName(item.userId);
});
});
});
function getAuthorName(userId) {
var fullname = "default";
$.getJSON('/api/search/GetUserById/' + userId, function (jsonData) {
fullname = jsonData.firstname + " " + jsonData.lastname;
});
return fullname;
}
我尝试通过调用 getAuthorName 方法来访问 fullname 变量,但无法获取正确的值。它总是给我“默认”值。
最佳答案
您不会从异步方法返回
,如您所见,它不起作用!您需要的是一个回调函数,请考虑:
function getAuthorName(userId, callback) {
var fullname = "default";
$.getJSON('/api/search/GetUserById/' + userId, function (jsonData) {
fullname = jsonData.firstname + " " + jsonData.lastname;
callback(fullname);
});
}
请注意我们如何传入callback
,然后在 get 调用结束时调用它?现在像这样调用这个方法:
getAuthorName(userID, function(name) {
console.log(name);
});
现在您可以在该回调函数中访问fullname
!
关于jquery - 在 $.getJSON() 之外访问 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913682/