[JS/Node]非同期

3922 ワード

これまで,学習の高次関数では,同期運転を用いて学習を行ってきた.
コールバック関数を使用すると、使用状況に応じて同期も非同期も使用できます.
const A = function () {
console.log('Hello World!');
}
const B = function (callback){
callback(); 	//바로 callback함수 A로 넘어가서 실행
}

B(A);
  • を繰り返し実行する関数反復器
    :forEach、map、reduceなどの関数を繰り返し呼び出す関数にもコールバック
    コード
  •  [1,2,3,4].map(function(el){
       return el*2		//element를 2씩 곱해주는 함수가 callback 함수
     })
  • イベントに基づく関数イベントハンドラ
    ボタンに掛けるのではなく、関数自体に関数を掛けるべきであることに注意してください.
  • 同期VS非同期


    モチベーション:タスクを停止して実行する必要があります==要求の結果が同時に発生します
    非同期:確認後、後で実行可能==要求の結果は同時に発生しません.

    タスクの同期実行中に発生した問題


    前の仕事が终わるまで、次の仕事は全然始まらない.前のタスクが完了するまで、次のタスクはキューに残ります.
    コーヒーオーダー例-コールバックモード
    let request = 'latte';
    orderCoffeeAsync(request, function(response){
    //callback으로 주문한 커피결과 보여줌
    drink(response); 
    }

    非同期の例

  • DOM要素のイベントハンドラ
    :マウス、キーボード入力など(クリック、キーなど)、ページロード
  • タイマ
    :タイマAPI(settimeoutなど)、アニメーションAPI
  • サーバへのリソースのリクエストと応答
    : fetch API, AJAX(XHR)