非同期を理解するまず、リクエストは非同期プロセスであることを理解する必要があります。 リクエストをサーバーに送信し、リクエスト結果を受信するまでに時間がかかるためです。 リクエストが完了するまで待機し、リクエストが完了した後にコールバックを実行して、受信したリクエスト結果を処理する必要があります。 フェッチ(url)学習の便宜上、uni-app チュートリアルの API インターフェースを借用します。 定数 url = 'https://unidemo.dcloud.net.cn/api/news' fetch は Promise に基づいて設計されていることを知っておく必要があります。理解できない場合は、まず es6 Promise を学習することをお勧めします。 fetch(url) は get リクエストを直接送信することができ、それ自体が Promise です。 Promise なので、.then コールバックを使用できます。試してみましょう。 fetch(url).then(res => { コンソール.log(res) }) 何が返されるのでしょうか?それは応答です。 レスポンスは、いくつかのリクエストパラメータを返すカプセル化されたオブジェクトです。 より便利な例は status です。これは、リクエストのステータス コードが 200 であり、リクエストが正常に送信されたことを示します。 GET リクエストを送信したので、最も気になるのは、要求されたデータがどこにあるかということです。 レスポンス.json()心配しないでください。レスポンスのプロトタイプをクリックすると、json メソッドが見つかります。 このメソッドも Promise を返すことをお伝えします。 次に、次のコールバックのためにこの Promise を返すことができます。 次のステップでは、結果を出力して結果を確認します。 fetch(url).then(response => { response.json() を返す }).then(res => { コンソール.log(res) }) 必要なデータはここにあることがわかりました。 asyncとawaitを組み合わせる上記のリクエストを行うために fetch を使用してコールバックを実行することもできますが、コールバックを使用するとコードのエレガントさが失われます。 ただし、非同期関連のキーワード async と await を知っていれば、別の書き方もあります。 関数に async を追加すると、関数は非同期関数になり、その中で await を使用して、コードに非同期操作 Promise を待機させ、コールバック結果を返すことができます。これは、非同期を同期に変えるという意味を持ちます。 const fetchAPI = 非同期() => { const レスポンス = フェッチ(url) を待機 const データ = 応答.json() を待機します コンソール.log(データ) } フェッチAPI() 例外処理そして、最初のステップの応答のステータス コードを使用して、次のステップを正常に実行できるかどうかを判断できます。 const fetchAPI = 非同期() => { const レスポンス = フェッチ(url) を待機 応答ステータス === 200 の場合 const データ = 応答.json() を待機します コンソール.log(データ) }それ以外{ console.log('リクエスト例外') } } フェッチAPI() 次に、予期しない状況をより厳密に考慮するために、try-catch を使用して例外をキャプチャします。 const fetchAPI = 非同期() => { 試す { const レスポンス = フェッチ(url) を待機 応答ステータス === 200 の場合 const データ = 応答.json() を待機します コンソール.log(データ) } それ以外 { console.log('リクエスト例外') } } キャッチ (エラー) { コンソール.log(エラー) } } フェッチAPI() 投稿リクエストfetch の 2 番目の入力パラメータはオブジェクトであり、これはリクエストの構成パラメータです。 リクエストメソッドを post に設定でき、リクエストヘッダーと post 入力パラメータも設定できます。 フェッチ(url, { メソッド: "POST", ヘッダー: { 'コンテンツタイプ': 'application/json', ... }, 本文: JSON.stringify({ 'キー': 値、 ... }) }) 要約するjs fetch 非同期リクエストの使用に関するこの記事はこれで終わりです。js fetch 非同期リクエストの使用に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: docker cp ファイルをコピーしてコンテナに入る
>>: MySQLでよく使われるSQLとコマンドの入力からデータベースの削除、そして終了まで
目次背景1. dns-prefetch とは何ですか? 2. dns-prefetch を設定するに...
次のように、Win10でMysqlの解凍バージョンをインストールします。環境: win10 64ビッ...
目次1. ブラウザのサポート2.エクスポートモジュールのエクスポート3. モジュールをインポートする...
第 1 章<br /> Web ページをユーザーにとって使いやすいものにするための最も重...
目次1. シーン紹介2 コードの最適化2.1 ファンを増やす問題を解決する2.2 作品追加の問題を解...
主に、Nginx で X-Frame-Options、X-XSS-Protection、X-Cont...
<br />このページはUTF8エンコードを使用しており、ヘッダーとフッターはテンプレー...
目次1. ユーザーが作成したスクリプト2. 単語当てゲーム3. ネットワークカードのトラフィック監視...
Centos7 と Centos6 では、GRUB パスワードの設定手順に大きな違いがあります。これ...
今日、入力イベントに関するブログ投稿を見て、気まぐれで関連情報を整理してみました。イベント:関数 c...
通常、全員のスピーチを最初から最後まで読む必要があります。ただし、Stack Overflow には...
上図のように、パディング値は時計回り(右上、右下)の複合属性であり、パディングの内側の余白がボックス...
インストール手順は省略します( yum -y install nginx;を使用して直接インストール...
目次Kubernetesについて基本的な環境の準備VirtualBoxをインストールするUbuntu...
目次スロットルと手ぶれ防止コンセプト:違いスロットリングの実装スロットル機能手ぶれ補正の実装手ぶれ防...