0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

同期と非同期の違いとPromiseの役割

Last updated at Posted at 2022-10-26

同期処理と非同期処理とは

同期処理

同期処理は順番通りに処理を行う

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");
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?