I'll note that the disposer pattern is a lot like Ruby's resource management idioms as well (probably closer). The biggest issue I've seen with it so far is only how hard it is to compose while still avoiding leaks. Using one resource like that is easy, but joining multiple resources to use them simultaneously is much harder, and really requires some sort of abstraction. Promises complicate that further in that you have to effectively save an async continuation for each resource just to call back into them when done. Another complication is that some may end up unsuccessful, so you have to continue those that do succeed.
As for any decent resource management, the current idioms suck, but I'm not sure what would be better. On Fri, Jan 6, 2017, 04:38 Benjamin Gruenbaum <[email protected]> wrote: > Oh, Bluebird's `Promise.using` does that with very high certainly. The > reason we introduced `using` rather than let people just use the disposer > pattern is because it is very tricky to get right in userland - so the > library provided it. > > On Fri, Jan 6, 2017 at 2:51 AM, Isiah Meadows <[email protected]> > wrote: > > It'd be nice to have something like that reified into the language > somehow. I'll note that Bluebird's gotcha with `Promise.using` > multiple resources simultaneously is a huge issue, though, and it > should be avoided for anything standardized. (If one of them fail, the > rest should be closed either immediately or as soon as they are > available, to avoid resource leaks.) > ----- > > Isiah Meadows > [email protected] > > > On Mon, Jan 2, 2017 at 10:04 AM, Benjamin Gruenbaum > <[email protected]> wrote: > > And, on a similar note - a pattern has emerged in userland libraries all > > over: > > > http://stackoverflow.com/questions/28915677/what-is-the-promise-disposer-pattern > > > > _______________________________________________ > > 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

