5
我正在運行支持異步/等待的節點7.6.0。節點postgres客戶端池支持異步/等待,並有一個很好的例子here。但是,node-postgres(here)中事務的示例使用回調代替async/await。儘管這個例子,我想我會嘗試用異步交易/在等待一個快速測試:node-postgres與回調或異步/等待交易?
let client = null;
try {
client = await this.pool.connect();
} catch (error) {
console.log('A client pool error occurred:', error);
return error;
}
try {
await client.query('BEGIN');
await client.query('UPDATE foo SET bar = 1');
await client.query('UPDATE bar SET foo = 2');
await client.query('COMMIT');
} catch (error) {
try {
await client.query('ROLLBACK');
} catch (rollbackError) {
console.log('A rollback error occurred:', rollbackError);
}
console.log('An error occurred:', error);
return error;
} finally {
client.release();
}
return 'Success!';
這似乎是工作得很好,但I was told由節點Postgres的貢獻,這是一個壞主意。不幸的是,他沒有花時間解釋爲什麼這是一個糟糕的主意 - 他只是說要在Stack Overflow上尋找答案。
爲什麼在node-postgres中使用async/await而不是回調執行事務是個壞主意?
如果移動邏輯創建交易成不同的功能,和維塔利-T只是想任何藉口,以促進他的圖書館這不是一個壞主意。忽略評論。 – Ryan