JS#3::コールバック(Callback)、Premise(Promise)、async/await


🙊 覚え間違いがあったらメッセージを!


初めて宿題をした時にcallbackという概念が出てきて、短期間で聞いた説明は理解しにくいので、別に見つけて整理します.理解する前に、コールバック関数という特定のメカニズムの関数があると思っていましたが...

💻コールバック


コールバック関数とは、他の関数のパラメータからアクセスできる関数で、最初の関数が完了した後、特定のイベントによって呼び出される関数です.
A callback function is a function which is:
  • passed as an argument to another function, and,
  • is invoked after some kind of event.
    出典:stackoverflow - What is a callback function?
  • 簡単に言えば、後で呼び出す関数を総称して関数と呼ぶ関数です.
    コールバック関数は、別の関数やオブジェクトとして使用されるpropertyに渡され、配列で使用されることがあります.
    必ずしもそうではありませんが、匿名関数として一般的に使用されます.
    ここで重要なのはコールバック関数の実行点であり,コールバック関数の実行点はパラメータとしての元の関数の終了点である.
    コールバックはjavascriptで最も古い非同期メカニズムであり、非同期は何を意味しますか?

    💻同期と非同期



    同期プログラミングは、前のタスクが終了するのを待って次のタスクを実行するプログラミングです.つまり、どのくらい時間がかかっても、1行のコードを順番に実行します.

    非同期プログラミングは、同期プログラミングとは異なり、前のタスクの完了を待つのではなく、実行コマンドが発行された後に次のタスクを実行します.これは、私たちが作成したコードと実行したコードの順序が異なる可能性があることを意味します.setTimeout()関数は最も代表的な非同期方法である.
    また,ロードスクリプトやモジュールは非同期操作ともいえる.

    💻に約束


    プロセスはJavaScriptの非同期処理に使用されるオブジェクトであり、コールバックの欠点を解決しようとしたときに作成されます.これにより、コールバックを予測可能なモードとして使用し、コールバックのみを使用する場合に発生する多くの現象やエラーを解決できます.
    プロセスは主に、サーバから受信したデータを画面に表示するために使用され、通常、Webアプリケーションを実装する際にサーバからデータを要求および受信するために使用される.
    プロセスベースの非同期関数を呼び出すと、その関数はプロセスインスタンスを返します.
    プロミスは성공(fulfiled)または실패(rejected)であり、プロミスが成功または失敗した場合、プロミスは결정됐다(settled)である.

    💻asyncとwait


    asyncとawaitはJavaScript非同期処理モードで最近出現した構文である.従来の非同期処理方式のコールバック関数とプロセスの欠点を補った.
    この関数は、非同期関数の前にayncまたはawaitのキーワードを追加することによって達成される.
    async function hello() { return "Hello" };
    hello();
    コードはpromisを返し、成功した프로미스(fulfile promise)は戻り、.then() blockを使用して受信します.
    hello().then(console.log)
    asyncが関数とともに使用されている場合は、結果を直接返すのではなくPromiseを返します.
    さらに、同期関数はawaitサポートを使用して実行する潜在的なオーバーヘッドを回避することもできます.
    この関数はawaitと一緒に使用できます.
    async function hello() {
      return greeting = await Promise.resolve("Hello");
    };
    
    hello().then(alert);
    参考資料
  • ランニングマシンJavaScript:ES 6を使用して正しく入門したモダンJavaScript Web開発
  • ライフコーディングコールバック関数
  • 生活コード-Node。js-同期、非同期、コールバック
  • モダンJavaScriptチュートリアル
  • コーララテ-テーマはつかみにくい