[JS/Node]非同期
3922 ワード
これまで,学習の高次関数では,同期運転を用いて学習を行ってきた.
コールバック関数を使用すると、使用状況に応じて同期も非同期も使用できます.を繰り返し実行する関数反復器
:forEach、map、reduceなどの関数を繰り返し呼び出す関数にもコールバック
コード イベントに基づく関数イベントハンドラ
ボタンに掛けるのではなく、関数自体に関数を掛けるべきであることに注意してください.
モチベーション:タスクを停止して実行する必要があります==要求の結果が同時に発生します
非同期:確認後、後で実行可能==要求の結果は同時に発生しません.
前の仕事が终わるまで、次の仕事は全然始まらない.前のタスクが完了するまで、次のタスクはキューに残ります.
コーヒーオーダー例-コールバックモード DOM要素のイベントハンドラ
:マウス、キーボード入力など(クリック、キーなど)、ページロード タイマ
:タイマAPI(settimeoutなど)、アニメーションAPI サーバへのリソースのリクエストと応答
: fetch API, AJAX(XHR)
コールバック関数を使用すると、使用状況に応じて同期も非同期も使用できます.
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);
}
非同期の例
:マウス、キーボード入力など(クリック、キーなど)、ページロード
:タイマAPI(settimeoutなど)、アニメーションAPI
: fetch API, AJAX(XHR)
Reference
この問題について([JS/Node]非同期), 我々は、より多くの情報をここで見つけました https://velog.io/@s_yeah/JSNode-비동기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol