<div dir="ltr">On Fri, Feb 16, 2018 at 7:51 AM, Dimitrian Nine <<a href="mailto:dimtimeforever@gmail.com">dimtimeforever@gmail.com</a>> wrote:<br>><br>> "Also, note that you can return promises out of the constructor (and I've done it before)"<br>><br>> Like callback?<br><div><br></div><div>I think he means literally returning a promise. If you return an object out of the constructor, that becomes the result of the `new` operation. So you can literally return a promise of an instance instead of an instance ([fiddle][1]):</div><div><br></div><div>```js</div><div><div><font face="monospace, monospace">class Example {</font></div><div><font face="monospace, monospace">    constructor() {</font></div><div><span style="font-family:monospace,monospace">        return new Promise(resolve => {</span><br></div><div><font face="monospace, monospace">            setTimeout(() => {</font></div><div><span style="font-family:monospace,monospace">                const instance = Object.create(Example.prototype);</span><br></div><div><font face="monospace, monospace">                resolve(instance);</font></div><div><font face="monospace, monospace">            }, 200);</font></div><div><font face="monospace, monospace">        });</font></div><div><font face="monospace, monospace">    }</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    foo() {</font></div><div><font face="monospace, monospace">        console.log("foo called");</font></div><div><font face="monospace, monospace">    }</font></div><div><font face="monospace, monospace">}</font></div><div>```<br></div></div><div><br></div><div>It gets ugly(ier) when you want to extend that. :-)</div><div><br></div><div>-- T.J. Crowder</div><div><br></div><div>[1]: <a href="https://jsfiddle.net/b9kzpd6c/1/">https://jsfiddle.net/b9kzpd6c/1/</a></div></div>