当初の書き方
APIと通信を行い、ステータスコードでエラー画面を表示したり、
成功のトーストを表示したりなどをする状況で、
「エラー処理は try-catch
だな...」と思っていた自分は
当初は以下のように書いておりました。
let response
try {
// API通信
response = await this.$api.post({ ... })
} catch (error) {
response = error.response
}
if (response.status === 201) {
// 成功時の処理
} else {
// 失敗時の処理
}
この書き方でも問題は無いのですが、
let
を使うのはちょっと...という感じがしてしまいます。
# 改善 そこで、API通信が非同期処理であり、戻り値は`Promise`であることに着目すると、 以下のように書き換えられます。
const response = await this.$api.post({ ... }).catch((error) => {
return error.response
})
if (response.status === 201) {
// 成功時の処理
} else {
// 失敗時の処理
}
これで`let`を使わずに書くことができて、より良いコードになりました。 (ちなみに`Promise`については[こちらのサイト](https://jsprimer.net/basic/async/)で勉強したのですが、すごく良かったです。)