Javascript 理解回调函数jquery

Javascript 理解回调函数jquery,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图在函数中的ajax调用后返回一个值,但它始终返回未定义的值 我查了一下,了解了回调 我开始理解这个概念,但对我想用的方式处理它有点困惑 职能: function count_posts(post_type, callback) { var s_data = { count_posts: 1, post_type: post_type } $.post("actions.php", s_data, function(dat

我试图在函数中的ajax调用后返回一个值,但它始终返回未定义的值

我查了一下,了解了回调

我开始理解这个概念,但对我想用的方式处理它有点困惑

职能:

function count_posts(post_type, callback) {


    var s_data = {
        count_posts: 1,
        post_type: post_type    
    }

    $.post("actions.php", s_data, function(data) {

        var r = JSON.parse(data);

        callback(r);

    });

} // EO count_posts
称之为:

count_posts('all', function(count) { console.log(count); }); // 20 ( working )
以不同的方式处理:

console.log(count_posts('all', function(count) { return count; })); // undefined
目标:


如何以我想要的方式处理回调。

函数不返回值。 回调称为异步

试着这样称呼它:

count_posts('all', function(count) { 
   $('#show_count').html(count);
});

这种回调的要点是,它们不知从何处被调用。。因此,您不会将其作为值返回到代码中。相反,在您的示例中,颠倒呼叫顺序:

count_posts('all', function(count) { $('#show_count').html(count); });

是的,这就是我最后做的。非常感谢。将在约7分钟内接受
count_posts('all', function(count) { $('#show_count').html(count); });