【发布时间】:2014-01-29 21:12:17
【问题描述】:
所以,我使用 express locals 来创建自定义函数。我有这个:
Menu.getMenu(function(err, menu) {
app.locals.buildMenuStructure = function(){
var ids = [];
for (var i = 0; i < menu.length; i++) {
ids.push(menu[i]._id);
}
return ids;
};
});
但问题是,当我向菜单集合添加一些数据时,该函数不知道正在填充菜单。要查看新 ID,我需要重新启动服务器。
现在我意识到我需要在buildMenuStructure 函数中检索菜单才能立即看到效果。在这种情况下,我需要获取 getMenu 异步函数的值并返回它。像这样的:
app.locals.buildMenuStructure = function(){
var ids = [];
Menu.getMenu(function(err, menu) {
for (var i = 0; i < menu.length; i++) {
ids.push(menu[i]._id);
}
});
return ids;
}
我打算为此使用异步库,但我无法让它工作((
笔记!这个功能被简化了。
Menu.getMenu 功能同猫鼬Menu.find({});
感谢您的回答。
【问题讨论】:
标签: node.js asynchronous express