最近,我正在测试nodejs express Web应用程序的异步行为。我的代码很简单
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
console.log(`hello main start`);
setTimeout(() => {
const date = new Date();
console.log(date);
res.send(`hello work done at ${date}!`);
}, 20000);
console.log(`hello main end`);
});
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
})
我发现一种经验,如果我只是在chrome浏览器中同时打开2个选项卡到端点url http://localhost:3000/
,而没有打开开发者工具,则请求会被一一触发。我怎么知道它们被一一触发,是当我观察服务器控制台日志时,第二个请求日志仅在请求1完成后才开始。因此,我需要40秒才能完成我的2个请求。
但是,我不希望发生上述行为。因此,我尝试对邮递员执行相同的操作。
但是这次,我发现邮递员将同时触发这两个请求,并且我的服务器也立即记录了这两个请求。
更奇怪的是,如果我在打开chrome开发人员工具的同时打开2标签,其行为将与在邮递员那里看到的一样。
任何人都可以对此铬的行为进行解释吗? Google故意在chrome上这样做吗?