I feel like I'm going crazy, but I have a class hierarchy, and one of the constructors in the hierarchy defers some logic to a microtask,
```js // class Foo constructor() { Promise.resolve().then(() => { this.methodThatSubclassOverrides() }) } methodThatSubclassOverrides() {} ``` and in the subclass there is ```js // class Bar extends Foo constructor() { super() this.foo = 123 } methodThatSubclassOverrides() { console.log(this.foo) // should be "123" } ``` You'd think the output should be "123" because the deferred code will run after construction is complete. However, in my current project, the promise deferral seems to run before the construction returns to the Bar constructor, thus this.foo is not set, and calls `methodThatSubclassOverrides` before the Bar class has a chance to run `this.foo = 123`. So the result of the console.log is "undefined". It is totally weird. Do Promises ever resolve before a constructor stack finishes? I don't have a simple reproduction at the moment. - Joe _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss