Модуль NodeJS pg не выполняет откат внутри транзакции

#node.js #postgresql #pg #pg-node

#javascript #node.js #postgresql #узел-postgres #узел-pg-пул

Вопрос:

Когда я пытаюсь выполнить откат внутри транзакции:

 const client = await pool.connect()
try {
    await client.query('BEGIN')
    const result = await client.query('SELECT...')
    if (result) { await client.query('ROLLBACK') } //DOESN'T WORK
    if (result) { throw new Error() }//WORKS. WHY?
    (...)
    await client.query('COMMIT')
}
catch (e) {
    await client.query('ROLLBACK')
}
finally {
    client.release()
}
  

Почему откат срабатывает только при возникновении исключения?

Комментарии:

1. Я просто написал это неправильно здесь

2. Можете ли вы подробно описать неисправность?

3. Откат выполняется, только если я выдал исключение. Отправка запроса с ‘rollback’ не имеет никакого эффекта. Выдача исключения решает мою проблему, но я просто хотел знать, почему sendind client. запрос (‘rollback’) не имеет никакого эффекта. Кажется, что откат работает только внутри блока ‘catch’

4. Что вы подразумеваете под «не имеет эффекта»? Что делает код в » (...) «?