【发布时间】:2023-03-08 15:52:01
【问题描述】:
在我的 NodeJs 应用程序中,我想在套接字 IO 事件发生时呈现一个文件。
我正在使用 python 运行一个不同的 socket.io 服务器,它在事件发生时进行一些计算并触发另一个返回事件到 NodeJs 端。但是,重定向操作在返回事件之前完成,并且页面在没有新数据的情况下呈现。我真正想要的是在返回事件完成后使用新数据“x”应用重定向。
let x = []
app.get("/", function(req, res) {
res.render('home', {'x' : x});
});
app.post("/", function(req, res) {
socket.emit('main event', 'data'); //trigger the main event
res.redirect("/");
})
socket.on('return event', (data) => { //this is the return event
x = data.x;
// I want render to happen after this line
});
有没有什么方法可以让我不在 express 事件中进行渲染操作,也可以在 socket.io 回调或等待事件完成的阻塞调用中进行?
【问题讨论】:
-
您好,您可以例如在您的主要操作中执行一个承诺,并且只在它完成后渲染视图......
标签: node.js express socket.io ejs