async
async function キーワードは、式の中で async 関数を定義するために使用できます。
await
await 演算子はプロミス (Promise) を待つために使用します。通常の JavaScript コードで、 async function の内部でのみ使用することができます。
Promiseの結果が返ってくるまで待ちます。
使ってみる
resolve
async function myAsyncFunc() {
console.log('start')
const x = await new Promise((resolve) => {
setTimeout(() => {
// resolve の引数が割り当てられます
// また、setTimeout の実行完了を待ちます
console.log('inner x')
resolve(100)
}, 1000)
})
console.log('---')
const y = await new Promise((resolve) => {
setTimeout(() => {
console.log('inner y')
resolve(200)
}, 1000)
})
console.log(x + y)
}
myAsyncFunc()
コンソール
start
inner x
---
inner y
300
reject
async function myAsyncFunc2() {
console.log('start')
try {
await new Promise((resolve, reject) => {
setTimeout(() => {
// resolve の引数が割り当てられます
// また、setTimeout の実行完了を待ちます
console.log('inner x')
reject('error!!!')
}, 1000)
})
console.log('suucess!!!')
} catch (e) {
console.log('catch!!!', e)
}
}
myAsyncFunc2()
コンソール
start
inner x
catch!!! error!!!