#はじめに
Promise と async/await について勉強した際のメモです
#async/await と promise
const getDataPromise = (num) => new Promise((resolve, reject) => {
setTimeout(() => {
typeof num === 'number' ? resolve(num * 2) : reject('error!!!!!!!!!!!!!!!!!')
}, 2000)
})
上のようなpromiseを返すgetDataPromise()があったとして、
const processData = () => new Promise((resolve, reject) =>{
getDataPromise(1).then((data) => {
return getDataPromise(data)
}).then((data) => {
resolve(data)
}).catch((err) => {
reject(err)
})
})
これは
const processData = async () => {
let data = await getDataPromise(1)
data = await getDataPromise(data)
return data
}
と同じ
asyncってのはつまるところ、戻り値をpromiseとして返すってこと
上の例でawaitしている関数でerrorが生じた場合、水面下で throw new ErrorしてくれるようになっているのでprocessData()を呼び出すときに
processData().then((data) => {
//なんかの処理
}).catch((error) => {
//エラー処理
})
こんな感じでcatch()してあげればOK