マスターJavaScript非同期操作:async/await detterfort /
を探り、非同期操作を効率的に制御し、より明確かつ読みやすいコードを作成する方法を教えます。
async
await
コアポイント:
JavaScriptでは、
/-
async
関数は約束を返し、await
キーワードは、約束が解決されるまで関数実行を一時停止し、それによりコードとフロー制御の読みやすさを向上させます。 -
async
関数のエラー処理は、await
/ ブロックまたは - メソッドを使用して効率的に管理できます。
async
try
catch
を使用して、非同期コマンドを並行して最適化し、複数のPromise
を連続的に実行するのではなく、同時に解決できるようにします。catch()
Async Iteratorsおよび - 関数の正しい処理が可能になり、実行の正しい順序とパフォーマンス管理の向上が確保されます。
Promise.all
ES2022によって導入された最上層により、ESモジュールの最上層でPromise
を使用することができ、追加のラッパーを必要とせずに非同期コードの統合を簡素化します。 -
for...of
async
コンテンツの概要: -
await
await
JavaScriptの非同期関数を作成する方法
キーワード
キーワード-
非同期関数を宣言するさまざまな方法
-
-
async
javascript - /
await
アンダーグラウンド使用約束 - 約束から /
に切り替えます
-
-
await
非同期関数でのエラー処理async
- 関数呼び出しを使用した
- メソッド
async
await
非同期コマンドを並行して実行します - メソッド
- 同期ループの非同期トップレベル
-
catch()
非同期コードを自信を持って記述します
- JavaScriptでは、一部の操作は非同期です。これは、彼らが生成する結果または値がすぐに利用できないことを意味します。
- 次のコードを検討してください:
await
- javaScriptインタープリターは、次のステートメントを実行する前に非同期
await
関数が完了するのを待ちません。したがって、API によって返された実際のデータを記録します。 - 多くの場合、これは予想される動作ではありません。幸いなことに、
キーワードを使用して、プログラムを非同期操作が完了する前に完了するまで、実行を続けることができます。
この機能は、ES2017でJavaScriptを導入し、すべての最新のブラウザによってサポートされています。
function fetchDataFromApi() { // 数据获取逻辑 console.log(data); } fetchDataFromApi(); console.log('数据获取完成');JavaScriptの非同期関数を作成する方法
fetchDataFromApi
数据获取完成
async
Fetch APIを使用して、これを行うことができます:await
function fetchDataFromApi() { // 数据获取逻辑 console.log(data); } fetchDataFromApi(); console.log('数据获取完成');
ここで、Jokeapiからプログラミングジョークがあります。 APIの応答はJSON形式であるため、リクエストが完了した後(json()
メソッドを使用して)応答を抽出し、ジョークをコンソールにログに記録します。
JokeapiはサードパーティのAPIであるため、ジョークの品質を保証することはできません。
このコードをブラウザまたはノードで実行する場合(フラグを使用してバージョン17.5)、コンソールが間違った順序でコンテンツを記録していることがわかります。 --experimental-fetch
キーワードasync
最初に行う必要があるのは、含まれる関数を非同期関数としてマークすることです。 キーワードを使用してこれを行うことができ、async
キーワードの前に配置します:function
function fetchDataFromApi() { fetch('https://v2.jokeapi.dev/joke/Programming?type=single') .then(res => res.json()) .then(json => console.log(json.joke)); } fetchDataFromApi(); console.log('数据获取完成');async関数は常に約束を返します(詳細については後で詳しく説明します)ので、
を関数呼び出しにリンクして、正しい実行順序を取得します:then()
async function fetchDataFromApi() { fetch('https://v2.jokeapi.dev/joke/Programming?type=single') .then(res => res.json()) .then(json => console.log(json.joke)); }今コードを実行すると、次のようなものが表示されます:
fetchDataFromApi() .then(() => { console.log('数据获取完成'); });しかし、私たちはこれをしたくありません! JavaScriptのPromiseの構文は少し複雑になる可能性があります。そこには、
/async
が点滅します。これにより、同期コードのように見える構文を使用して非同期コードを作成できます。 await
キーワードawait
次に行うことは、キーワードを使用して、関数の非同期操作を序文に序文で序じることです。これにより、JavaScriptインタープリターが実行を「一時停止」し、結果を待つようになります。これらの操作の結果を変数に割り当てることができます。
await
また、
<code>程序员的浪漫:一行代码解决千行代码的bug。 数据获取完成</code>
fetchDataFromApi
残念ながら、今すぐコードを実行しようとすると、エラーが発生します。
async function fetchDataFromApi() { const res = await fetch('https://v2.jokeapi.dev/joke/Programming?type=single'); const json = await res.json(); console.log(json.joke); }関数の外側で
を使用できないためです。これについては後で詳しく説明しますが、この問題を解決する最も簡単な方法は、コールコードを独自の関数で包むことです。
await fetchDataFromApi(); console.log('数据获取完成');今すぐコードを実行すると、すべてが正しい順序で出力される必要があります:
async
この追加のボイラープレートコードが必要であるという事実は残念ですが、私の意見では、コードは約束ベースのバージョンよりも読みやすいです。 await
非同期関数を宣言するさまざまな方法async
<code>Uncaught SyntaxError: await is only valid in async functions, async generators and modules</code>前の例では、2つの名前のfunction宣言(
キーワードの後に関数名)を使用しますが、これに限定されません。また、関数式、矢印関数、および匿名関数を
としてマークすることもできます。async function fetchDataFromApi() { const res = await fetch('https://v2.jokeapi.dev/joke/Programming?type=single'); const json = await res.json(); console.log(json.joke); } async function init() { await fetchDataFromApi(); console.log('数据获取完成'); } init();関数宣言と関数式の式の違いを確認する場合は、ガイドをご覧ください
function
(次の内容は同じです。元のテキストに従って段落で段落を書き換え、元の意味を維持し、言語スタイルを調整してよりスムーズで自然にする)
以上がJavaScript Async/awaitingの初心者ガイド、例がありますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
