ES6 クラスは、組織のパターンとして、非同期コードに何を提供できますか。以下は ES7 async/await の例です。ES6 クラスは非同期メソッドまたは ES7 のコンストラクターを持つことができますか?
僕にできる:
class Foo {
async constructor() {
let res = await getHTML();
this.res = res
}
}
そうでない場合、これを行うコンストラクターはどのように機能する必要がありますか?
class Foo {
constructor() {
getHTML().then( function (res) {
this.res = res
}
}
}
これらのパターンのどちらも機能しない場合、ES6 のコンストラクター (およびさらにクラス) はclass
、オブジェクトの状態で動作する任意の形式の非同期性をサポートできますか? それとも、純粋な同期コード ベースのみを対象としているのでしょうか? 上記の例はコンストラクターにありますが、そうである必要はありません.. 問題をもう 1 レベル下にプッシュします..
class Foo {
myMethod () {
/* Can I do anything async here */
}
}
または、ゲッターで...
class Foo {
get myProp() {
/* Is there any case that this is usefully asynchronous */
}
}
私が考えることができる唯一の例は、同じメソッド/コンストラクター/ゲッター内で何かを並行して実行することですが、結論の前にすべてを解決することです。完全に非同期のライブラリへのすべてのプッシュがあるように見えるので、私は混乱しています。これは物事を混乱させるのに役立ちます. 教科書の例を除いて、それらが役立つアプリケーションは 1 つも見つかりません。