目前,我正在尝试async/await
在类构造函数中使用。这样一来,我就可e-mail
以为正在从事的Electron项目获取自定义标签。
customElements.define('e-mail', class extends HTMLElement {
async constructor() {
super()
let uid = this.getAttribute('data-uid')
let message = await grabUID(uid)
const shadowRoot = this.attachShadow({mode: 'open'})
shadowRoot.innerHTML = `
<div id="email">A random email message has appeared. ${message}</div>
`
}
})
但是,目前该项目无法正常工作,并出现以下错误:
Class constructor may not be an async method
有没有办法避免这种情况,以便我可以在其中使用异步/等待?而不需要回调或.then()?
与其他人所说的不同,您可以使其正常工作。
JavaScript
class
可以从其字面上返回任何内容constructor
,甚至可以返回另一个类的实例。因此,您可能Promise
从类的构造函数返回一个解析为其实际实例的a。下面是一个示例:
然后,您将以
Foo
这种方式创建实例: