Quick actions

cmd+k|ctrl+k

Navigation

Languages

bracket function

Snippet info

Language

JavaScript

Visibility

public

Author

homam

Created

2018-04-07T07:09:42Z

Updated

2018-04-07T07:10:36Z

async function bracket(acquire, release, process) {
    const resources = await acquire()
    try {
        return process(resources)
    } finally {
        release(resources)
    }
}


bracket(
    async () => Promise.resolve({conn: 'A database connection'})
,   async ({conn}) => { console.info('Cleanup conn: ', conn); return Promise.resolve() }
,   async ({conn}) => { console.info('Process conn: ', conn); return 'result of process' }
)
.then(r => console.log('result =', r))
.catch(e => console.error('error =', e))
INFO