Вы можете сделать именно то, что написали - создать функцию, которая выполняет общую обработку.
export function getUser(req: Request, res: Response) {
const p1 = Promise.resolve("data1");
const p2 = Promise.resolve("data2");
sendResponse(req, res, [p1,p2]);
}
export function getRanks(req: Request, res: Response) {
const p1 = Promise.resolve("data3");
const p2 = Promise.resolve("data4");
sendResponse(req, res, [p1,p2]);
}
function sendResponse(req, res, promises) {
Promise.all(promises)
.then(function(results) {
res.json(results);
})
.catch(function(e) {
console.log(e)
});
}
PS: у вас должна быть некоторая res
обработка в .catch (res.end()
или res.status(500); res.json({error: e})
), в противном случае запрос будет зависать в течение 30-90 секунд (в зависимости от ваших настроек)