JavaScript における async と await の使い方とメソッド

JavaScript における async と await の使い方とメソッド

JS の async 関数と await キーワード

関数ヘルワールド() {

    「こんにちは!美しい世界!」を返します。

}

console.log(hellworld()); // こんにちは!美しい世界!

非同期関数 asyHellworld() {

    「こんにちは!美しい世界!」を返します。

}

console.log(asyHellworld()); // Promise { 'Hello!美しい世界! '}

通常の関数 hellworld は、単に文字列 hello! を返します。美しい世界! 、 async 関数は Promise オブジェクトを返します。

非同期関数によって返された値を使用する必要がある場合は、次のように、その後に .then() ブロックを追加する必要があります。

非同期関数 asyHellworld() {

    「こんにちは!美しい世界!」を返します。

}

asyHellworld().then((str) => console.log(str)); // こんにちは!美しい世界!

await キーワードは、値を待機する必要がある可能性のある他のコードの実行を続行する前に、非同期関数の Promise が完了して結果を返すことを保証します。

非同期関数 asyHellworld() {

    return await Promise.resolve("Hello! Beautiful world!");

}

asyHellworld().then(console.log); // こんにちは!美しい世界!

このコードはシンプルですが、await キーワードの使用方法と、関数本体内で Promise オブジェクトをどのように操作するかを示しています。

次に、コードを理解しやすくするために、次のようにコード内の Promise 構文を削除します。

非同期関数 asyHellworld() {

    「こんにちは!美しい世界!」を返します。

}

非同期関数printHello() {

    const strHello = asyHellworld() を待機します。

    コンソールにログ出力します。

}

こんにちは、印刷します。

上記のコードでは、async と await の使用をより直感的に確認できます。通常、 async と await は非同期操作を処理するために使用され、非同期を同期に変える方法です。

async はこの非同期関数を表す関数を宣言し、await は関数内の非同期操作が完了するまで待機するために使用されます。

上記の紹介を通じて、async と await について予備的な理解が得られました。では、これらは何に使用できるのでしょうか?

await キーワードは、値を待機する必要がある可能性のある他のコードの実行を続行する前に、非同期関数の Promise が完了して結果を返すことを保証します。

したがって、VUE プロジェクトなどで AJAX 非同期リクエストを処理する場合、通常の処理方法は次のとおりです。

login(ユーザー名, パスワード).then((loginResult) => {

    // ログイン要求が送信された後の要求の処理 console.log("ログイン成功!");

});

await の使用は次のように処理できます。

const loginResult = await login(ユーザー名、パスワード);

console.log(ログイン結果);

ここで注意すべき点は、await は非同期関数でのみ使用できることです。上記のコードには問題があります。ストアで処理する場合は、次のように変更する必要があります。

定数アクション = {

    非同期 [LOGIN]({ コミット }, ペイロード) {

        const { ユーザー名、パスワード } = ペイロード;

        const loginResult = await login(ユーザー名、パスワード);

        console.log(ログイン結果);

    },

};

ここでは、複数の Promise で構成される then チェーンを処理するときに利点が反映されることがわかります。

もう 1 つの一般的な使用法は、プログラムを一時停止することです。これは sleep メソッドです。実装コードは次のとおりです。

定数スリープ = (ミリ秒) => {
    新しい Promise を返します((resolve) => setTimeout(resolve, ms));
};

(非同期() => {
    console.log("実行を開始し、10秒間helloを出力します");
    スリープを待機します(10 * 1000);
    console.log("こんにちは");
})();

JavaScript における async と await の使用法と方法についてはこれで終わりです。より関連性の高い Js async と await のコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JS ループで async と await を正しく使用する方法
  • JS で async await をエレガントに使用する方法
  • JavaScript のよりエレガントなエラー処理方法 async await
  • JavaScript の async と await のシンプルで詳細な学習
  • JavaScript PromiseとAsync/Awaitの詳細な説明
  • JS で async と await を使用する方法

<<:  MySQL 時間差関数 (TIMESTAMPDIFF、DATEDIFF)、日付変換計算関数 (date_add、day、date_format、str_to_date)

>>:  bash のスクリプトデバッグメカニズムの詳細な説明

推薦する

HTMLドキュメントタイプの詳細な説明

私のは: <!DOCTYPE html>ブログガーデン: <!DOCTYPE HT...

CSS コード省略 div+css レイアウト コード省略仕様

略語を使用すると、CSS ファイルのサイズが小さくなり、読みやすくなります。 CSS 省略形の主なル...

CSSスタイルのカスケーディングルールの詳細な説明

CSS スタイル ルール構文スタイルは、CSS の基本単位です。各スタイル ルールは、セレクターと宣...

CocosCreator スケルトンアニメーション ドラゴンボーン

CocosCreator バージョン 2.3.4ドラゴンボーンアニメーションキールアニメーションを ...

Vueでパスワードの表示と非表示機能を実装するアイデアを詳しく解説

効果: アイデア:入力タイプ属性を使用して、タイプ値がテキストの場合はパスワードを表示し、タイプ値が...

6つの珍しいHTMLタグ

まず: <abbr> または <acronym>これら 2 つの記号は同じ意...

権限の問題によりMySQLの設定ファイルmy.cnfを起動できない問題の解決方法

この記事では、権限の問題により MySQL 構成ファイル my.cnf を起動できない場合の関連する...

WHMCS V7.4.2 グラフィカル インストール チュートリアル

1. はじめにWHMCS は、ユーザー管理、請求書の支払い、ヘルプ サービスなど、オンライン ビジネ...

Nginx の書き換え正規マッチング書き換え方法の例

Nginx の書き換え機能は、リダイレクトと同様に、URL アドレスを一時的または永続的に新しい場所...

ネイティブjsはショッピングカートのロジックと機能を実装します

この記事の例では、ショッピングカートのロジックと機能を実装するためのjsの具体的なコードを共有してい...

フロントエンドタスク構築のための強力なツールであるGulp.jsの使い方を詳しく説明します

目次概要Gulp.jsをインストールするGulp.jsを使用してプロジェクトを作成するgulpfil...

HTML における DTD の使用法の概要

DTD はマークアップの文法規則のセットです。これは XML 1.0 仕様の一部であり、HTML フ...

MySQL 同期遅延が発生したときに Seconds_Behind_Master が 0 のままになる理由

目次問題の説明原理分析問題分析拡大する総括する問題の説明ユーザーはプライマリ データベースに対して変...

JS配列重複排除の詳細

目次1 テストケース2 JS配列重複排除4種類2.1 要素の比較2.1.1 二重層 for ループ比...

Dockerコンテナはルーティングを介して直接通信し、ネットワーク通信を実現します。

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...