2021/04/21
フロントエンド /
同期処理 async/await

普通、プラグラムは上から順にコードが実行され、実行が完了するまで次の行には進みません。
一方、Javascriptは非同期処理です。
非同期処理は、ある関数が呼び出されたとき、戻り値として本来渡したい結果を返すのではなく、一度関数としては終了し(=呼び出し元に戻る)、後で『本来渡したかった値』を返せる状態になったときに、呼び出し元にその値を通知するという仕組みです。
非同期処理
const aaa = () => {
setTimeout(() => {
console.log("aaa");
}, 1000)
}
const bbb = () => {
console.log("bbb");
}
const ccc = () => {
console.log("ccc");
}
aaa();
bbb();
ccc();
//結果
//bbb
//ccc
//aaa
同期処理
const execute = async() => {
const aaa = () => {
return new Promise((resolve,reject)=>{
setTimeout(() => {
console.log("aaa");
resolve();
}, 1000)
});
}
const bbb = () => {
return new Promise((resolve,reject)=>{
console.log("bbb");
resolve();
});
}
const ccc = () => {
console.log("ccc");
}
await aaa();//ここで順番が決められる
await bbb();
ccc();
}
execute();
//結果
//aaa
//bbb
//ccc