A way to fire logic at the end of completion of the current class method (regardless of super call order).

Jordan Harband ljharb at gmail.com
Sat Feb 9 21:52:54 UTC 2019


If the superclass constructor has a way to run any code after subclass
constructors, then implementation details of the *subclasses* are then
leaked.

On Sat, Feb 9, 2019 at 2:15 AM Isiah Meadows <isiahmeadows at gmail.com> wrote:

> I've also had *several* scenarios where I could've used this
> personally. I feel ES classes are overly restrictive in preventing
> this, since it basically forces you to force subclasses to do
> something like `this.init()` right after the class is allocated,
> leaking implementation details left and right.
>
> -----
>
> Isiah Meadows
> contact at isiahmeadows.com
> www.isiahmeadows.com
>
> On Fri, Feb 8, 2019 at 1:22 AM #!/JoePea <joe at trusktr.io> wrote:
> >
> > I many times find myself in cases where a base class wants to ensure
> that logic is always fired after the current method's execution, so that
> for example no matter in which order sub classes call the `super` method,
> the `super` method can still guarantee that logic fires after the whole
> stack of the same method in the class hierarchy.
> >
> > So what I can do now is use `Promise.resolve().then(() => { ... })` to
> schedule that logic for later, that way all the invocations of a `foo`
> method along the class hierarchy have all fired. But this means that other
> code can also fire before the next microtask.
> >
> > Is there some way to do it? If not, I wonder if some language feature
> for doing it would be possible?
> >
> > - Joe
> > _______________________________________________
> > es-discuss mailing list
> > es-discuss at mozilla.org
> > https://mail.mozilla.org/listinfo/es-discuss
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20190209/6f30a97e/attachment.html>


More information about the es-discuss mailing list