質問が述べたように。これを行うことは許可されますか:
class MyClass {
async constructor(){
return new Promise()
}
}
質問が述べたように。これを行うことは許可されますか:
class MyClass {
async constructor(){
return new Promise()
}
}
手短に:
async constructor
概念的に矛盾しています。戻り値から約束を取得し、それを待つことができます。
class User {
constructor() {
this.promise = this._init()
}
async _init() {
const response = await fetch('https://jsonplaceholder.typicode.com/users')
const users = await response.json()
this.user = users[Math.floor(Math.random() * users.length)]
}
}
(async () {
const user = new User()
await user.promise
return user
})().then(u => {
$('#result').text(JSON.stringify(u.user, null, 2))
}).catch(err => {
console.error(err)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id="result"><code></code></pre>