【发布时间】:2014-03-13 11:34:27
【问题描述】:
我正在尝试这样当查询完成并且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);
}
});
【问题讨论】:
-
.each正在执行表明有一个长度。你为什么没有柜台——然后if (counter ==0)sendData(data); -
简单...谢谢;)
-
np,让我知道它是否有效。 :) 我将其作为答案提交
-
工作,我做了
if (data.length === 3)sendData(data); -
你确定
.each( function(err, post) { data.push(post); });不是异步的,这意味着你无法在data数组填充之前发送数据
标签: javascript jquery node.js mongodb express