Benjamin Gruenbaum (2017-01-02T15:03:00.000Z)
forbes at lindesay.co.uk (2017-01-08T05:36:48.361Z)
We've actually worked on this extensively in bluebird with http://bluebirdjs.com/docs/api/promise.using.html and disposers which give something similar to the `with` syntax you describe. There has also been work on a `defer` like abstraction. The tricky parts were mostly getting it to work with multiple resources at once. I've been using it for a while now (few years) and I'm generally satisfied.