Задать вопрос
@Banjamin
Пишу

Как написать асинхронную функцию?

Добрый день. Ниже код который отправляет запись из БД через get. Вынес функцию за пределы роута, но тут встал вопрос, res.send(data) не будет ждать выполнения getUsers, что логично. Подскажите самый оптимальный вариант выполнения действий: получить data, отправить ответ, без создания async функции внутри роута, где будет два await-а. Хотел упростить запись, и использовать эту функцию многократно.

async function getUsers(){
    const db = await pool.connect()
    const data = await db.query('SELECT * FROM users')
    console.log(data.rows)
    
    return data.rows  
}

app.get('/getUsers', (req,res)=>{

   const data = getUsers()
   res.send(data)   
})
  • Вопрос задан
  • 102 просмотра
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Banjamin Автор вопроса
Пишу
Придумал такой вариант:
async function getUsers(cb){
    const db = await pool.connect()
    const data = await db.query('SELECT * FROM users')
    console.log(data.rows)
    await cb.send(data.rows)
   
}


app.get('/getUsers', (req,res)=>{

   getUsers(res)
     
})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы