jquery – 访问$.getJSON()之外的json数据

前端之家收集整理的这篇文章主要介绍了jquery – 访问$.getJSON()之外的json数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
$(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);
    });
}

注意我们如何传递回调然后在你的get调用结束时调用它?现在调用这个方法

getAuthorName(userID,function(name) {
    console.log(name);
});

现在您可以在该回调函数中访问fullname!

猜你在找的jQuery相关文章