同期処理と非同期処理とは
同期処理
同期処理は順番通りに処理を行う
console.log("一番");
console.log("二番");
console.log("三番");
コンソールログ
//上から順番通り
一番
二番
三番
同期処理の問題点
同期処理は順番通りに処理を行うために
途中に重い処理が合った場合その処理を待たないといけない
非同期処理
処理を順番通りにとは限らない、終わった処理から実行される
例えばsetTimeoutなど
console.log("一番");
setTimeout(() => console.log("二番"), 5000);
console.log("三番");
//コンソールログ
一番
三番
二番
このように順番通りではなく処理が終わった順番になる
Promise
resolve実行時は
thenの処理
reject実行時は
catchの処理
finallyはresolve,reject両方とも最後に実行される
new Promise(function (resolve, reject) {
console.log("promise");
resolve("hello"); //thenが順番に実行される
// reject("bye"); //catchが実行される
})
.then(function (data) {
console.log("then" + data); //then helloと表示される
return data;
})
.then(function (data) {
console.log("then" + data); //then helloと表示される
return data;
})
.catch(function (data) {
console.log("catch" + data); //catch byeと表示される
})
.finally(function () {
//resolveとreject両方とも表示される
//finallyにはデータを渡せない
console.log("finally");
});
console.log("global end");