Допустим, у нас есть контроллер, который извлекает данные из сторонней службы, сохраняет эти данные в БД и отправляет ответ клиенту:
const findUser = async (req, res, next) => {
if (req.params.username) {
const resp_ = await fetchFunction (req.params.username)
/* This part is where I have problem*/
Option 1:
await db.save(resp_);
Option 2:
db.save(resp_);
Option 3:
db.save(resp_).then(param => /*Do nothing*/ clg(param)).catch(err => clg(err))
res.json(resp_)
}
};
Я не хочу блокировать асинхронный поток в этом контроллереесли я использую опцию 1, она будет ждать завершения функции db.save (), и я думаю, что я не смогу реализовать это поведение с помощью async / await.Какой вариант предпочтительнее или есть какой-либо другой способ отправить ответ клиенту, не блокируя поток.
[Правка]: Вариант 2 довольно глупый, но я просто добавил, чтобы понять различия.