来自模板的 Node.js 异步调用

标签 node.js asynchronous

我刚刚开始使用node.js,这个问题肯定有一个明显的答案,但我无法实现。

让我们用这个方法建立一个名为 club 的模型:

club.getStaff = function(callback) {
    client.sinter('club-staff:'+club.id, callback);
};

到目前为止,我通过回调管理应用程序流程,但现在我陷入了模板中。我将如何呈现异步调用?我想迭代 staff 并打印它。

我想我可以在渲染之前调用这个方法,实际上在它的回调中渲染。感觉有点不对劲。如果不需要调用该方法(因为模板中存在 if 等),则会浪费资源。此外,渲染包装器会随着引入的每个新(异步)变量而增长。

最佳答案

对于大多数模板引擎,您无法从模板调用异步函数。

相反,您必须从 Controller 调用异步函数,当它返回时,将数据传递给模板。

假设 express :

app.get('/route/', function(req, res) {
    club.getStaff(function(data) {
        res.render('template', data);
    });
});

关于来自模板的 Node.js 异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12220191/

相关文章:

javascript - node.js 和浏览器之间的 JavaScript 语法差异是什么?

node.js - 当我尝试构建 Twitter Bootstrap 时,为什么 "make test"对我来说失败了?我安装了 connect,但收到 "Error: Cannot find module ' connect'"

node.js - 如何使用 jest 在 Node.js 中模拟 postgresql (pg)

c# - 秒表计时异步/等待方法不准确

ajax调用的成功函数中未设置javascript类属性

scala - 使用 WireMock 测试异步行为

javascript - 从 "presenceUpdate"事件中排除移动更新吗?

node.js - NPM 注册表错误 503

c# - 自定义TaskFactory不使用自定义SynchronizationContext

javascript - 让 async/await 与 superagent 一起工作