class Human {
constructor(name) {
this.name = name;
}
async sayHello() {
return await this.asyncReturnSomething(`Hello! I'm ${this.name}!`)
}
asyncReturnSomething(something) {
return new Promise((resolve, reject)=> {
setTimeout(()=> {
resolve(something);
}, 1000);
});
}
}
(async ()=> {
const greeting = await new Human('John').sayHello();
console.log(greeting);
console.log('Done!');
})();
=> 1000ms後に
Hello! I'm John!
さらにその後に
Done!
await
はasync
で修飾された関数内でしか使えない模様です。
上の例からはclass
のメソッド自体にasync
をつけることが可能だとわかる。
playground