1
const { Pool } = require('pg')
const pool = new Pool()
(async() => {
// note: we don't try/catch this because if connecting throws an exception
// we don't need to dispose of the client (it will be undefined)
const client = await pool.connect()
try {
await client.query('BEGIN')
const { rows } = await client.query('INSERT INTO users(name) VALUES($1) RETURNING id', ['brianc'])
const insertPhotoText = 'INSERT INTO photos(user_id, photo_url) VALUES ($1, $2)'
const insertPhotoValues = [res.rows[0].id, 's3.bucket.foo']
await client.query(insertPhotoText, insertPhotoValues)
await client.query('COMMIT')
} catch (e) {
await client.query('ROLLBACK')
throw e
} finally {
client.release()
}
})().catch(e => console.error(e.stack))
이 기능이 바로 실행 것으로 보인다. 또한 콜백을 지정하는 방법이없는 것처럼 보입니다. 이 함수로 "....) ((비동기를"에서 전체 블록을 배치하는 의미를 다음 try 블록이 끝나기 전에 최종 성명에서, 추가합니다 :
await callbackfunction();
합니까을 그 ??.. 의미는 무엇 콜백 함수를 추가 할 수있는 더 좋은 방법이 될 것입니다
약속을 사용하고 있다면 콜백이 필요하지 않습니다 ('async/await'도 배후에서 사용합니다). – robertklep
'.catch (...'? – DavidDomain
@DavidDomain'then' 호출의 의미가 "callback"호출의 의미 (첫 번째 인수는 가능한 오류를 나타냄)와 다르기 전에'.then (callback)'을 추가 할 수 없습니까? (v => 콜백 (null, v)) catch (콜백)' – robertklep