Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Why didn't they go with `defer` which is the more ergonomic and established pattern?

Neither statement is true.

> `defer` also doesn't need to change the API of thousands of objects to use it

Callbacks can trivially be bridged to `using`:

    using _cb = {[Symbol.dispose]: yourCallbackHere};
There is also built-in support for cleanup callbacks via the proposal’s DisposableStack object.

> or for things that are not objects

This is javascript. Everything of note is an object. And again, callbacks can trivially be bridged to using



For readability I'd recommend using DisposableStack instead of making an object, though either works:

    using disposer = new DisposableStack;
    disposer.defer(yourCallbackHere);




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: