async & await


async & await

  • コミットメントメカニズムを継続し、コードが読めなくなる
  • async&await API
  • コミットメントをシンプルに、同期
  • asyncおよびawaitは、新しい機能を追加するのではなく、既存の承諾に基づいてより簡単なAPIを提供し、
  • 動機。非同期?


    最初の動機は何ですか.非同期は何ですか.私が理解したことを簡単に表現すると.
    同期:a->b->cなどの順序で処理
    非同期ひどうき:並列処理へいれつしょり

    なぜ非同期処理を行わなければならないのですか?

  • jsエンジンは、ブロック内でコードを同期処理する.
  • 時間かかるコードを非同期で処理しないと、次のコードに問題が発生する可能性があります.
  • は、サーバからデータを受信してウェブページに出力する必要がある例であるが、受信データには10秒、
  • が必要である.
  • 非同期処理を行わないと、空のデータが出力されます.
  • コミットメントシナリオ:私はいつプレイヤーのデータを受け取るか分かりませんが、もし私がコミットメントの対象があれば、thenというコールバック関数を登録する必要があります.データが準備されている限り、私はあなたが登録したコールバック関数を呼び出します.
  • async


    従来の方法

    //프로미스를  사용하면 반드시 resolve와 reject를 호출해야함
    function fetchUser(){
      return new Promise ((resolve,reject) => {
        // return "영재";//promise pending 상태
        resolve("영재"); //프로미스 fullfill상태
      });
    }
    const user = fetchUser();
    user.then(user=>console.log(user));

    asyncの使用

  • asyncを使用すると、関数のコードブロックは自動的に「承諾」(Coooooooool~)
  • に変換されます.
    //1. 함수 선언식
    asyncd function fetchUser() {
      return "영재";
    }
    
    //2. 함수 표현식
    const fetchUser = async function(){
      return "영재";
    };
    
    //3. 화살표 함수
    const fetchUser = async () => {
      return "영재";
    };
    
    //fetchUser().then(data => console.log(data)); //함수 바로 호출
    const user = fetchUser(); // 변수에 할당해서 호출
    user.then(data => console.log(data));
    console.log(user);
    次のVelogでAwaitを知りましょう!