3 ms·
Why didn't they go with `defer` which is the more ergonomic and established pattern? `defer` also doesn't need to change the API of thousands of objects to use
by xmorse 1y ago
Why didn't they go with `defer` which is the more ergonomic and established pattern?
`defer` also doesn't need to change the API of thousands of objects to use it, instead now you have to add a method any resource like object, or for things that are not objects, you can't even use this feature.
- masklinn 1y ago> 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
- sharlos201068 1y agoI can't think of any JS value that could need cleaning up that isn't an object.
- xmorse 1y agowhat about functions that return a callback for disposal? like Redux store.subscribe, there are thousands more examples