Недавно я тестировал асинхронное поведение веб-приложения nodejs express. Мой код был очень прост
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}`);
})
Я обнаружил, что, если я просто одновременно открываю 2 вкладки до URL-адреса конечной точки http://localhost:3000/
в моем браузере Chrome без открытия инструментов разработчика, запрос запускается один за другим. Как я могу узнать, что они запускаются один за другим, так это то, что когда я наблюдаю журнал консоли сервера, второй журнал запускается только после того, как запрос 1 закончится. И, следовательно, мне нужно 40 секунд для выполнения моих 2 запросов.
Однако я не ожидаю, что вышеупомянутое поведение случится. Поэтому я стараюсь делать то же самое с почтальоном.
Но в этот раз я обнаружил, что мой почтальон будет запускать 2 запроса одновременно, и мой сервер также немедленно регистрирует 2 запроса.
Что еще более странно, так это то, что если я открою вкладку 2 с открытием инструмента разработчика Chrome, поведение будет таким же, как я видел с почтальоном.
Может у кого-нибудь есть объяснение этого поведения для хрома? это Google делает это специально на Chrome?