非同期


非同期


Javascriptを学ぶと、非同期という慣れない言葉に遭遇します.他の言語ではあまり見られないこの言葉はどういう意味ですか?

同期と非同期


非同期の国語辞書の意味は、前に行った思想や演算が完了した信号を受け取ってから、特定の思想や演算を開始する方法を指す.
よくわかりません.
ウィキペディア英語辞典の非同期(asynchronous)は、(計算、通信)1つの時間、任意の順序、待つ必要がない場合に複数の動作を避けることを意味する.
一度に発生する多くの行為は、互いに等しく実行される.

私が理解している動機と非同期


動機。


Clientの要求の後、Serverは、要求に対する応答を生成し、応答する.このとき、Clientは他の動作待ちがない.
同期の場合、リクエストからレスポンスまで遅延時間があります.
リクエストとレスポンスを実行すると、次のリクエストとレスポンスが実行されます.

非同期



事前定義などの非同期の場合、リクエスト後に応答を待つのではなく、次のリクエストが送信されます.
リクエストとリクエストの間には待ち時間が少ない.
Webサイトのロードでは、すべてのファイルをロードすると待機時間が増加します.要求を分離し、複数の要求を送信し、応答構成画面に従って待機時間を短縮します.

などなど。


コードを記述する場合、特定のコードの実行結果は次のコードで使用されます.非同期で実行されるA、Bコードがある場合は、BのAの結果が必要です.他の言語で悩む理由のない悩みが生じた.
function A() {
  // 0초 후 10을 리턴, 비동기적 처리
  setTimeout(()=> {
    return 10;
  }, 0)
}

function B(num) {
  // num이라는 값을 받아와 0초 후 출력, 비동기적 처리
  setTimeout(() => {
    console.log(num);
  }, 0)
}

// 원하는 것은 10을 출력하는 것
var number = A();
B(number); // undefined
リストされたコードで実行されると、BはAの結果を待たずに実行されます.では、Bでは、Aの結果が進行せず、正常に動作しない.(Aの結果については、undefinedかもしれません.)
私たちはAからBまで修行したいです.
この場合、コールバック関数を使用します.

コールバック関数


JavaScriptの関数は1レベルのオブジェクトであることを覚えておいてください.
変数に格納できます.戻ります.パラメータに渡すことができます.
関数を特定の関数のパラメータに渡し、関数を呼び出します.
function A(callback) {
  setTimeout(()=> {
    callback(10);
  }, 0)
}

function B(num) {
  setTimeout(() => {
    console.log(num);
  }, 0)
}

A(B); // 10
このようなコードは記述されないかもしれないが,Aはコールバック関数をパラメータとして受け入れる.結果値をコールバック関数に渡します.
その結果、undefinedではなく、予定通り10を出力することができる.
値を渡す必要がなくても、特定のコードの後に実行されるコードを返すことができます.

次はね。


JavaScriptでは非同期を扱うコールバック関数が見られます.
callback関数を聞いたことがあるなら、callback地獄についても耳にします.
一般的なダイナミックマップ

Promiseとasync/awaitで脱出しよう

リファレンス

  • Naver国語辞典-非同期
  • ウィキペディア-非同期
  • 同期、非同期処理-エンベロープ