我试图在查询完成时这样做,data
数组已满,然后它应该执行res.send()
部分。
此代码当前失败 - sendData函数在查询完成之前运行:
function showPostsOnPage(pageNumber, nPerPage) {
funnyPosts.find().skip((pageNumber-1)*nPerPage).limit(nPerPage).each( function(err, post) {
data.push(post);
});
sendData(data);
}
function sendData(data) {
res.send(
{ msg: '', data: data } // Alerts empty on the client side.
);
}
在客户端,我使用:
var pageNumber = {
'pageNumber': 30
};
$.ajax({
type: 'POST',
data: pageNumber,
url: '/nextHomeImages'
}).done(function( response ) {
if (response.msg === '') {
alert(response.data);
} else {
console.log('Error: ' + response.msg);
}
});
答案 0 :(得分:0)
我注意到了关键字each
,我将其作为jQuery跳转。
据说有一个有限的长度。我会做类似的事情:
var len;
function showPostsOnPage(pageNumber, nPerPage) {
var _posts = funnyPosts.find().skip((pageNumber-1)*nPerPage).limit(nPerPage);
len = _posts.length;
_posts.each( function(err, post) {
data.push(post);
len --;
if (len <= 0) sendData(data);
});
//sendData(data);
}
function sendData(data) {
res.send(
{ msg: '', data: data } // Alerts empty on the client side.
);
}