Сделал такой пример для теста...
const app = require('express')()
const host = '127.0.0.1'
const port = 7000
app.get('/start1', (req, res) => {
test()
.then(_ => res.send('test1 завершил работу'))
})
app.get('/start2', (req, res) => {
test()
.then(_ => res.send('test2 завершил работу'))
})
app.use((req, res, next) => {
res.status(404).type('text/plain')
res.send('Not found')
})
app.listen(port, host, function () {
console.log(`Server listens http://${host}:${port}`)
})
let i = 0
function test() {
return new Promise((resolve, reject) => {
const number = ++i
console.log('старт скрипта ' + number)
setTimeout(_ => {
console.log('конец скрипта ' + number)
resolve()
}, 6000)
})
}
Все повторилось как и в твоем варианте...
Если стартовать start1+start1, сообщения выводятся так
старт скрипта 1
конец скрипта 1
старт скрипта 2
конец скрипта 2
Т.е. пока не получит ответ первый запрос, вторая обработка стартовать не станет.
Если стартовать start1+start2, сообщения выводятся
старт скрипта 3
старт скрипта 4
конец скрипта 3
конец скрипта 4