gpt4 book ai didi

node.js - NodeJs/Express 请求被 SetTimeout 阻止?

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:13 25 4
gpt4 key购买 nike

在下面的示例中,我在返回响应之前引入了 10 秒的人为延迟。

但是,如果我在两个单独的选项卡中并行打开页面,则第二个请求将被阻止,并且在第一个请求完成之前不会开始处理。换句话说,直到第一个请求完全完成后(10秒后)才会显示第二个“输入方法”。

为什么第二个请求被阻止?我认为 NodeJs 不应该在异步代码运行时阻塞。

app.get('/', function (req, res) {
console.log('entering method');

setTimeout(() => {
res.send('hello world');
}, 10000);
});

最佳答案

许多浏览器限制对同一服务器的并发请求数量。这是浏览器的限制,而不是 Node.js 的限制。

尝试使用curl,您会发现请求没有被阻止。

curl http://localhost:{port} &
curl http://localhost:{port} &

或者使用 apache 基准测试:

ab -n 10 -c 2 http://localhost:{port}

关于node.js - NodeJs/Express 请求被 SetTimeout 阻止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50013370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com