我可以这样做吗:
class Foo {
async constructor() {
let res = await getHTML();
this.res = res
}
}
如果不是这样,构造函数应该如何工作?
class Foo {
constructor() {
getHTML().then( function (res) {
this.res = res
}
}
}
如果这两种模式都不起作用,那么 ES6 中的构造函数(以及类)是否支持任何操作对象状态的异步形式?或者,它们仅适用于纯同步代码基础?上述示例位于构造函数中,但它们不需要在其中。将问题再向下推一层。
class Foo {
myMethod () {
/* Can I do anything async here */
}
}
或者,使用 getter 方法...
class Foo {
get myProp() {
/* Is there any case that this is usefully asynchronous */
}
}
我能想到的唯一例子就是在同一个方法/构造函数/获取器中并行运行某些内容,但要在结束之前解决整个问题。我感到困惑的是,随着完全异步库的推出,这似乎只会使事情更加混乱。除了教科书上的例子外,我找不到它们有用的应用程序。
await new Foo(url);
将会非常尴尬。我已经将问题更广泛化了,我不想假设我知道答案。让我们等待并看看是否还有其他人提出任何问题。如果没有,我会设置悬赏。 - Evan Carroll