Ron Buckton has a proposal that's quite similar to what you're talking about: https://github.com/tc39/proposal-using-statement
On Mon, Oct 15, 2018 at 11:40 AM Dan Aprahamian <[email protected]> wrote: > Hello all! First time posting here. I was curious if there was ever talk > about adding something similar to python's with syntax to JS. Obviously we > already have a "with" keyword, but I figure we could probably use "use" as > the keyword instead. I was thinking something like > > // Some user defined resource that can be "entered" and "exited" > class MyResource { > // Function called when entered > async [Symbol.enter]() { > } > > // Function called when exited > [Symbol.exit]() { > } > } > > const resource = new MyResource(); > > async function useResource() { > use myResource { > // Inside here, resource has had "acquire" called on it > > await doSomethingAsync(); > // Once this block is finished executing (including async) > // release is called > } > // Release has been called now > } > > Use would effectively be the equivalent of: > > async function use(resource, body) { > await resource[Symbol.enter](); > try { > await body(); > } finally { > await resource[Symbol.exit](); > } > } > > Has something like this been considered before? > > Thanks, > Dan > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

