TIL. async await
いつもfetchのみ使用していましたが、今回はasync awaitを使用しました.
これはpromiseとthenを簡単にするES 8文法です.
まず、async宣言方法はfunctionの前に書くかarrow functionの前に書くことができる.
awaitは、私が宣言した関数がすべて実行されるのを待っています.実行が完了するまで実行しません.
話がちょっと難しいので、自分でログインした時に関数を書いてみました. try catch await res axios ここで使う4種類
1.tryが成功したときに実行するコードcatchは失敗したときに実行するコードです
2.awaitはresという定数にpostリクエストを入れ、postリクエストの完了を待つ.
3.resは成功時に条件文として、実行したいコードを追加します.
4.axiosは1つのライブラリで、主に応答に用いて、JSONデータに対して自動変換を行って、そしてPromise APIをサポートする.詳しい内容は次回書きます.
そしてそのコードはasync waitではありません.
当時作成されたコード
これはconst resとして保存されたwait promiseではなくpostリクエストのコードを使用します.
つまり、待っていない.
これはpromiseとthenを簡単にするES 8文法です.
まず、async宣言方法はfunctionの前に書くかarrow functionの前に書くことができる.
//example 1
async function 함수 () {
//코드자리
}
//example 2
const 함수 = async() =>{
//코드자리
}
関数にコードをそのまま記述します.함수.then().catch()
このように使いますが、awaitはthen()を使わなくてもいいです.awaitは、私が宣言した関数がすべて実行されるのを待っています.実行が完了するまで実行しません.
話がちょっと難しいので、自分でログインした時に関数を書いてみました.
1.tryが成功したときに実行するコードcatchは失敗したときに実行するコードです
2.awaitはresという定数にpostリクエストを入れ、postリクエストの完了を待つ.
3.resは成功時に条件文として、実行したいコードを追加します.
4.axiosは1つのライブラリで、主に応答に用いて、JSONデータに対して自動変換を行って、そしてPromise APIをサポートする.詳しい内容は次回書きます.
const fetchLogin = async () => {
const { employee_number, password } = userInfo;
try {
const res = await axios.post(
`${BASE_URL}/users/signin`,
{
employee_number,
password,
},
{
headers: {
'Content-Type': 'application/json',
},
}
);
if (res) {
localStorage.setItem('token', res.data.token);
history.push('/calendar');
}
} catch (err) {
switch (err.response.status) {
case 401:
alert('You do not have permission to access.');
default:
alert('Please check the employee number and password.');
break;
}
}
};
このコードを書く前に、私は勉強しなかったので、勝手にコードを打っただけです.そしてそのコードはasync waitではありません.
当時作成されたコード
const fetchLogin = async () => {
const { employee_number, password } = userInfo;
try {
const res = await axios.post(
`${BASE_URL}/users/signin`,
{
employee_number,
password,
},
{
headers: {
'Content-Type': 'application/json',
},
}
).then(res => {
localStorage.setItem('token', res.data.token);
history.push('/calendar');
}
}
};
よく覚えていませんが、そうです.起動しましたが、async待ちではありません.これはconst resとして保存されたwait promiseではなくpostリクエストのコードを使用します.
つまり、待っていない.
Reference
この問題について(TIL. async await), 我々は、より多くの情報をここで見つけました https://velog.io/@jungzkxm/TIL.-async-awaitテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol