javascript - 变量在方法之外不起作用

标签 javascript node.js express parse-platform

我正在尝试使用 Parse.com 上的 Node/Express.js 访问一些数据库结果,因为接下来我有一些额外的数据要循环。基本上我需要导航表循环,然后在该循​​环内我将循环另一个表。这是正确的方法吗?我无法在以下方法之外访问变量 navigation:

var Navigation = Parse.Object.extend('Navigation');
var navigation;
var query = new Parse.Query(Navigation);
query.ascending('SortOrder');
query.find().then(function(results) {
    navigation = results
}, function() {
    res.send(500, 'Failed loading navigation');
});

res.render('index', { nav: navigation });

想法?我基本上是在构建一个移动单页应用程序。我真的不需要路线。但我想遍历并构建导航。并且还循环并构建其他 DIV,这些 DIV 将根据用户从导航中选择的内容显示/隐藏。希望这是有道理的。

最佳答案

如当前所写,navigation 在异步函数的回调期间被分配一个值......在它被传递给渲染器之后。在调用 render 时,navigation 已声明,但尚未赋予值。

任何时候你分配一个值作为异步回调的一部分,你希望使用该值的每个操作都必须是回调的一部分或发生在它之后(例如,在后续的链接 .then())

在这种情况下,您可以将 render 调用移到回调中,这就足够了。

关于javascript - 变量在方法之外不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374015/

相关文章:

javascript - Node js/express (localhost) 上未定义的 Cookie

node.js - Node-Jasmine 没有按预期失败

javascript - NuxtJs 登录有效但未授权 401

javascript - 从 json 文件中提取数据

php代码中的javascript变量

javascript - 从双重选择器中排除一个类的麻烦

node.js - Mongoose 查找并更新功能

javascript - 如何解析包含 UTF-8 字符的 Content-Disposition header

javascript - 如何在 Watson Conversation 中使用“选择选项”

javascript - 创建动画点对点一页导航