【发布时间】:2020-10-07 17:47:37
【问题描述】:
我有一个使用 HapiJS 框架开发的 API。如果处理程序返回一个承诺,则后续请求正在等待完成现有请求。所以基本上我在访问 API 时是在做一个异步进程。
请查找以下示例:
// Server Creation ...
// Route Creation
server.route({
method: 'GET',
path: '/v1/check',
handler: () => {
console.log('Check');
return new Promise((resolve) => {
setTimeout(() => {
console.log('Check Response')
resolve({check: 1});
}, 1000);
});
}
});
在浏览器的 3 个不同选项卡中执行相同的路由并同时重新加载。
日志:
Check
Check Response
Check
Check Response
Check
Check Response
预期日志:
Check
Check
Check
Check Response
Check Response
Check Response
// Not expecting the same log, but wanted parallel execution.
所以我怀疑如果 100 个用户访问同一个 API,那么第 100 个请求必须等待 99 个请求的完成?
对输出有点困惑。
【问题讨论】: