我有一个JS函数被调用,以便获取特定月份的帖子标题列表。数据作为JSON对象返回。我希望将数据返回给调用函数。 答案的形式如下:
{
"success":true,
"days":[
{
"date":"2,March 2013",
"posts":[
{
"post_id":"10",
"post_title":"tgfkyhhj",
"created_on":"2013-03-02 21:24:17",
"time":"09:24 PM"
}
]
}
]
}
我希望返回此JSON的日期部分。
功能如下:
function archivePostMonth(month) {
var days;
$.ajax({
'type' : 'get',
'url' : base_url + 'index.php/blog/blogArchiveMonth',
'data' : {
'blogId' : blogId,
'month' : month,
},
success : function(response) {
var res = jQuery.parseJSON(response);
if (res.success == true) {
console.log(res.days); //displays the data
days = res.days;
console.log(days); // displays the data
}
}
});
console.log(days); //undefined
return days; // returns undefined
}
无论函数返回什么都未定义。我无法弄清楚这个问题。有更好的方法吗?
答案 0 :(得分:1)
ajax是异步的,因此,在您的代码中,您正在向服务器执行请求并同时返回days的值(具有未定义值的变量)。
变量days在调用成功回调之前没有值,这在您的函数已经返回undefined之后发生。