У меня есть сервер NodeJS, и я пытаюсь использовать обещания для выполнения вызовов в мою базу данных, чтобы мой сервер все еще мог доставлять другим клиентам более быстрые запросы.
Вот самый простой код, который я мог сделать:
const express = require('express');
const server = express();
const moment = require('moment');
require('dotenv').config();
const slowRoute = require('./routes/slow');
server.use('/slow', slowRoute);
server.listen(process.env.PORT, () =>
console.log(
`Listen on port ${process.env.PORT} | ${moment().format(
'YYYY/MM/DD HH:mm:ss:SSS'
)}`
)
);
и мой маршрутизатор
const express = require('express');
const router = express.Router();
const pool = require('../database');
router.get('/', async (req, res, next) => {
console.log(`Slow route`);
let result = await pool.query('SELECT pg_sleep(6)');
res.status(200).json(result.rows[0]);
});
module.exports = router;
Если я вызываю 2 раза / медленный, второй консольный журнал «Медленный маршрут» срабатывает только после 1-го завершения, и результат приходит через 12 секунд послевместо 6.
Я успешно делаю 2 звонка одновременно в прошлом, я просто не понимаю, почему я не могу сделать это сейчас.