如何在javascript函数中返回json对象?

pta*_*mzz 4 javascript jquery json function

我有这个功能

function getTags(level){
    $.getJSON("php/get-tags.php", { "parent": level }, function(json) {
        return json;
    });
}
Run Code Online (Sandbox Code Playgroud)

我把这个函数称为

$(function(){
    var tags = getTags('0');  
});
Run Code Online (Sandbox Code Playgroud)

问题是,在函数getTags()中返回json就像

{"tags":["Mathematics","Science","Arts","Engineering","Law","Design"]}

但是,在var tags = getTags('0')捕获返回值时,它会得到一个undefined值.

我返回值的方式不正确吗?

jAn*_*ndy 6

与许多其他已正确描述的内容一样,默认情况下,ajax请求会异步运行.所以你需要以适当的方式处理它.你可以做的是返回jXHR由jQuery promise maker组成的对象.这可能会像

function getTags(level){
    return $.getJSON("php/get-tags.php", { "parent": level });
}
Run Code Online (Sandbox Code Playgroud)

然后像处理它一样

$(function(){
    getTags('0').done(function(json) {
        // do something with json
    });
});
Run Code Online (Sandbox Code Playgroud)