node.js - 在 express/nodejs 应用程序中开始加载页面而无需等待异步功能
问题描述
如何开始加载页面而无需等待异步功能(大约需要 3 秒才能完成)?
我有一个使用 Express 和 EJS 作为我的视图引擎的 Node 应用程序。我希望能够开始渲染名为“send-money”的模板(见下文),而不必等待“结果”返回。
这就是我的样子(经过一些简化):
router.get("/sweden/poland/sek/pln/3000", async (req, res) => {
const result = await findCheapestProvider('Sweden','Poland','SEK','PLN',3000) //takes ~3 seconds to return;
res.render("send-money", result)
});
这个问题可以通过这个 URL 实时看到(它是瑞典语,所以让你的浏览器的“翻译成英语”功能成为你的朋友):https ://www.transferhero.se/skicka-pengar/sverige/polen/sek/pln /3000
我是编程新手,但我正在尝试通过我的这个副项目来学习。
解决方案
根据路线的当前实施,我想不出一种方法来实现你所追求的。视图引擎必须具有“结果”才能呈现 html 并将其发送到浏览器。一种解决方案是使用来自服务的 html 页面的 ajax 调用来获取数据并显示它。所以会有两条路线,一条只提供 html 页面(带有 url 参数),另一种是 html 页面可以从中获取数据。该页面将在页面加载时运行 ajax 函数并检索数据。
推荐阅读
- java - 如何在单击菜单项时弹出窗口?
- javascript - Firestore 云函数 http onRequest 'POST'
- javascript - 如何将客户端包(webpack)提供给 NodeJS 服务器?
- xml - xpath - 如果节点包含文本,则获取节点兄弟节点的值
- javascript - 如何渲染对象数组中的所有对象属性
- html - 让框和文本以正确的方式出现
- apache-kafka - Kafka 客户端 poll() 每次收到消息后都会抛出 EOFError
- php - 无法登录,无法检查密码?
- python - 无法使用 img.shape 中的高度和宽度进行进一步计算
- c# - Azure AD Graph api 返回 Forbidden