JavaScript#async/await,例外処理技術(try,catch,finally)


async


定義#テイギ#
asyncは非同期という意味で、コードがいつ実行されるか予測できません.

使用方法


- 😃 async/awaitの使用は、promiseを鎖の形で呼び出すthen法よりも毒性が高い.

  • 関数の前にasyncを付けると、常にpromiseが返されます.

  • インフラストラクチャの値でなくても、実行するインフラストラクチャを履行状態のインフラストラクチャ(resolved promis)で保護します.
  • async function getName() {
      return "MIKE"; 
    }
    //그러므로 호출할 때 then 이 사용가능하다.
    getName().then((name)=>{
      console.log(name);   //Mike
    });  
    👇戻り値がpromiseなら?
    async function getName() {
      return Promise.resolve("Tom")
    }
    //그 값을 그대로 사용한다
    getName().then((name)=>{
      console.log(name);   //Tom
    });  
    👇関数内で例外が発生すると、拒否されたプロセスが返されます.
    async function getName() {
      //return Promise.resolve("Tom")
      throw new Error("err..")
    }
    //rejected 이기 때문에 catch 를 사용해야한다.
    getName().catch((err)=>{
      console.log(err);   //Error: err..
    });  

    await


    使用方法

  • awaitキーワードはasync関数内でのみ使用できます.

  • 一般的な関数間では使用できません.

  • 右側を待っているのは承諾で、処理されるのを待っています.
  • async function f() {
    
      let promise = new Promise((resolve, reject) => {
        setTimeout(() => resolve("완료!"), 1000)
      });
    
      let result = await promise; // 프라미스가 이행될 때까지 기다림 (*)
    
      alert(result); // "완료!"
    }
    
    f();
    await(「待つ」という意味の英語の単語–転送)は、名前の通り、Premissが処理されるまで関数が実行されるのを待つ.フラミスが処理されると,結果回復に伴って実行される.インフラストラクチャの処理を待つ間、エンジンは異なるタスク(異なるスクリプト、イベント処理などを実行)を実行できるため、CPUリソースを無駄にしません.
    待つ約束.これは、Premissの結果値をより簡潔に取得できる構文です.promise.そして毒性がよく、使いやすいです.
    ソース:https://ko.javascript.info/async-await

    例📝



    以前に承諾チェーンを使用して作成されたコード👆asynceとawaitの使用👇??
    async function order() {
      const result1 = await f1 ();
      const result2 = await f2 (result1);
      const result3 = await f3 (result2);
    }
    
    しかし、中間価格が拒否されたらどうしますか?💢
    //try, catch 를 사용한 예외 처리!
    async function order() {
      try{
      const result1 = await f1 ();
      const result2 = await f2 (result1);
      const result3 = await f3 (result2);
      } catch (e) {
        console.log(e);
      }
    }
    

    😎 try catch/finallyとは何ですか?

  • try、catch、finallyはjavascriptの異常処理テクニックです.
  • try


  • 通常、このコードはブロックの開始から終了まで実行され、問題はありません.

  • ただし、場合によっては例外が発生する可能性があります.

  • 例外はthrow文によって直接発生する可能性があります.

  • あるいは、異常を引き起こすメソッドを呼び出すことで行うこともできます.

    catch(e)




  • これらのブロックの文はtryブロックに異常が発生した場合にのみ実行されます.

  • これらの文では、領域変数eを使用して、Errorオブジェクトまたは前に投げ出された他の値を参照できます.

  • このブロックを使用して、この例外を処理できます.

  • 例外を無視して何もしなくてもいいです

  • あるいは、throwを使用して異常を再発させることもできます.

    finally



  • このブロックではtryブロックで何が起こっても無条件に実行されるコードがあります.

  • このコードはtryブロックの終了時にどうしても実行されます.

  • tryブロックが終了する場合は、次のようになります.

  • 1)ブロックの末尾に正常に到達した場合

  • 2)break、continueまたはreturn文による

  • 3)catchセクションで異常を処理する場合

  • 4)例外が発生し,捕まえられずに拡散した場合