Sind JavaScript ES6-Klassen mit asynchronen Codebasen verwendbar?

Was kann ES6-Klassen bieten, als ein Muster der Organisation, um asynchronen code. Unten ist ein Beispiel mit ES7 async/await, kann ein ES6-Klasse haben eine asynchrone Methode oder Konstruktor im ES7?

Kann ich tun:

class Foo {
    async constructor() {
        let res = await getHTML();
        this.res = res
    }
}

Ist-und falls nicht, wie sollte ein Konstruktor, der Arbeit, der dies tut?

class Foo {
    constructor() {
        getHTML().then( function (res) {
            this.res = res
        }
    }
}

Wenn keines dieser Muster arbeiten, kann ein Konstruktor (und darüber hinaus Klassen) in einem ES6 class unterstützen jede form von Asynchronität, die arbeitet auf den Zustand des Objekts? Oder sind Sie nur für eine rein synchrone code-Basen? Die obigen Beispiele sind in den Konstruktor, aber Sie brauchen nicht zu sein.. Schieben das problem nach unten eine weitere Ebene..

class Foo {
    myMethod () {
      /* Can I do anything async here */
    }
}

Oder, mit einem getter...

class Foo {
    get myProp() {
        /* Is there any case that this is usefully asynchronous */
    }
}

Nur Beispiele, die ich denken konnte, zu etwas laufen parallel innerhalb der gleichen Methode/Konstruktor/getter, aber um das ganze zu beheben vor dem Abschluss. Ich bin nur verwirrt, weil es scheint, mit allen push-to-vollständig asynchrone Bibliotheken, dies dient nur zu verwirren Dinge. Außer lehrbuch-Beispiele, ich kann nicht finden, eine Anwendung, die Sie sind nützlich für die.

InformationsquelleAutor der Frage Evan Carroll | 2016-05-31

Schreibe einen Kommentar