理解回调函数jquery

时间:2014-08-08 14:51:38

标签: javascript jquery ajax

我试图在函数中调用ajax之后返回一个值,并且它一直返回undefined。

我查了一下并了解了回调。

我开始理解这个概念,但是对于按照我想要的方式处理它而言却很困惑

功能:

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

目标:

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

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

2 个答案:

答案 0 :(得分:0)

该函数不返回值。 回调称为async

尝试这样称呼:

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

答案 1 :(得分:0)

这种回调的关键在于,它们在某种程度上是从无处调用的,所以你不会将它返回给你的代码。而是在您的示例中反转调用顺序:

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