查询直到快递服务器准备好响应为止
我有一个快速应用程序,它在启动后会从外部源获取外部数据。在应用程序中提取数据之前,这将使用默认模板响应所有查询。
在最初的3或4秒钟内,应用正在使用该模板进行响应,然后正常工作。
这实际上是一个问题。我想避免该默认响应。我想检查(服务器运行之后)是否已获取数据,然后等待直到准备好发送正确的响应。
也就是说,尽管头几秒钟,客户端仍会感觉该应用程序运行缓慢,这将始终收到正确的响应。
回答如下:我做了这样的事情:
async function fun (req, res, next) {
while (!sitemap['/'] && Object.keys(sitemap).length == 0) {
await new Promise(done => setTimeout(done, 20));
}
next();
}
app.use(fun);
我想,这是一个虚拟的解决方案,但显然可行。我强行提取数据至少需要10秒钟,并将此功能用作中间件,客户端一直等到服务器完成加载数据为止。
也许有人可以告诉我是否还好。
查询直到快递服务器准备好响应为止
我有一个快速应用程序,它在启动后会从外部源获取外部数据。在应用程序中提取数据之前,这将使用默认模板响应所有查询。
在最初的3或4秒钟内,应用正在使用该模板进行响应,然后正常工作。
这实际上是一个问题。我想避免该默认响应。我想检查(服务器运行之后)是否已获取数据,然后等待直到准备好发送正确的响应。
也就是说,尽管头几秒钟,客户端仍会感觉该应用程序运行缓慢,这将始终收到正确的响应。
回答如下:我做了这样的事情:
async function fun (req, res, next) {
while (!sitemap['/'] && Object.keys(sitemap).length == 0) {
await new Promise(done => setTimeout(done, 20));
}
next();
}
app.use(fun);
我想,这是一个虚拟的解决方案,但显然可行。我强行提取数据至少需要10秒钟,并将此功能用作中间件,客户端一直等到服务器完成加载数据为止。
也许有人可以告诉我是否还好。