作为一种组织模式,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
支持任何形式的对对象状态进行操作的异步性?或者,它们是否仅适用于纯同步代码库?上面的例子在构造函数中,但它们不需要是..将问题推低一层..
class Foo {
myMethod () {
/* Can I do anything async here */
}
}
或者,使用吸气剂...
class Foo {
get myProp() {
/* Is there any case that this is usefully asynchronous */
}
}
我能想到的唯一例子是在同一个方法/构造函数/getter 中并行运行一些东西,但要在结论之前解决整个问题。我只是感到困惑,因为它似乎与完全异步库的所有推动,这只是为了混淆事情。除了教科书示例,我找不到它们有用的应用程序。