我试图在函数中调用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; }))
如何以我想要处理它的方式处理回调。
答案 0 :(得分:0)
该函数不返回值。 回调称为async
尝试这样称呼:
count_posts('all', function(count) {
$('#show_count').html(count);
});
答案 1 :(得分:0)
这种回调的关键在于,它们在某种程度上是从无处调用的,所以你不会将它返回给你的代码。而是在您的示例中反转调用顺序:
count_posts('all', function(count) { $('#show_count').html(count); });