同期および非同期呼び出し


普段コードを書くと、コードが順番に出力されているのが見えます.
このコードメカニズムは,コード作成のJavaScriptと同期プロセスを組み合わせて使用される言語であるからである.
これとは逆の非同期プロセスもあります.
この二つの違いは私たちの日常生活の一例で区別することができます.

ファーストフード店のアルバイトの主な仕事を考えてみましょう.
フライドポテトは3-4分くらいかかりますが、その時まで待たなければなりませんか?
このままでは店長にスマッシュされます.
一般的にフライドポテトの場合、お客様の接待、デザート、ハンバーガーなど、短時間で多くの仕事をします.
3分以内に大量の作業を完了する例は、非同期処理呼び出しと似ています.
次に、同期呼び出しと非同期呼び出しの処理について詳しく説明します.

シンクロコール


同期呼び出しプロシージャはシリアル操作プロシージャを実行します.
作業プロセスが順番に行われ、初期タスクが実行されている場合、次のタスクは待機状態になります.

上の図に示すように、Task中にサーバにデータを要求し、接続完了を待つ.
これをブロックと呼ぶ.
同期呼び出しプロセスをコードで解析しましょう.

function func1() {
  console.log('func1');
  func2();
}

function func2() {
  console.log('func2');
  func3();
}

function func3() {
  console.log('func3');
}

func1();
func1()を呼び出すことにより、関数の呼び出しスタックはfunc 1=>func 2=>func 3を順次出力する.

ひどうきよびだし


非同期呼び出しプロシージャは、オペレーションプロシージャを並列に実行します.
つまり、ワークフローが終了していなくても、以下のワークフローを一緒に行います.

上図は、サーバからデータを要求するプロセスを示しています.
これをnon-blockingと呼びます.
今回は,非同期呼び出しプロセスをコードで解析する.

function func1() {
  console.log('func1');
  func2();
}

function func2() {
  setTimeout(function() {
    console.log('func2');
  }, 3000);

  func3();
}

function func3() {
  console.log('func3');
}

func1();
上のコードではsettimeout()メソッドが追加されていることがわかります.
setTimeout(function() {}, timerValue)
一定時間後に関数を実行する非同期方法.伝達パラメータは次のとおりです.
これは、コールバック関数とコールバック関数が実行されるまで待つ時間です.func1()が呼び出されると、出力結果はfunc 1=>fcun 3=>func 2として出力される.
関数func 1が呼び出されると、func 1はcall stackに蓄積され、fun 2が呼び出される.
コールスタックにスタックされ、setTimeoutが呼び出されます.
settimeout非同期メソッドの特性のため、コールバック関数はすぐに実行されず、3秒(1000*10^-3)以内に実行されます.
イベントが発生するのを待ってQueue spaceに移動し、
空の場合は移動して実行します.
資料構造から学んだQueuestackの概念を覚えていますか?
この方法は、資料構造で学習されたQueueおよびstackと同様に、setTimeoutキューにおいて
蓄積すると、最初に蓄積した要素が先に失われます.

これは対応するコードメカニズムを直感的に示した資料であるため,より理解できる.

n/a.結論


ネットワークの特性上,サーバと薪が燃えきれないため,コールの同期処理はユーザに不便をもたらす.
これを補うためには、今後の非同期プロセスが出力結果をもたらすため、非同期呼び出しが必要です.
さらに、乱雑な出力結果を順番に提供するcode syntexについて説明します.