モバイル アプリケーション開発では、ネットワーク リクエストが一般的な要件です。クロスプラットフォーム開発フレームワークとして、uniapp はネットワーク リクエスト API を提供し、開発者がネットワーク リクエスト操作を簡単に完了できるようにします。ネットワークリクエストには非同期と同期の2つの異なるメソッドがありますが、ここではuniappネットワークリクエストの非同期メソッドと同期メソッドを紹介します。
1. uniapp 非同期ネットワーク リクエスト
非同期ネットワーク リクエストとは、リクエストの発行後、メイン スレッドはブロックされず、リクエストはバックグラウンド スレッドで処理されることを意味します。 uniapp では、ネットワーク リクエストの非同期メソッドは主に API、つまり uni.request を通じて完了します。 API は次のように呼び出されます:
uni.request({ url: '', data: {}, header: {}, method: '', success: res => {}, fail: () => {}, complete: () => {} })
API はパラメータとしてオブジェクトを受け取ります。オブジェクトのプロパティは次のとおりです:
非同期リクエストはメインスレッドをブロックしないため、リクエスト結果を直接返すことはできないことに注意してください。リクエストの結果はコールバック関数に渡され、コールバック関数内で処理される必要があります。
2. Uniapp 同期ネットワーク リクエスト
同期ネットワーク リクエストとは、リクエストの発行後、メイン スレッドがブロックされ、リクエスト結果が返されるのを待機することを意味します。 uniapp では、同期リクエストの API は非同期リクエストとは異なります。つまり、リクエストの送信には uni.requestSync が使用されます。この API の呼び出しメソッドは次のとおりです。
try { const [err, res] = uni.requestSync({ url: '', data: {}, header: {}, method: '' }) if (err) { console.error('请求失败') } else { console.log(res.data) } } catch (e) { console.error('请求出错') }
この API のパラメーターもオブジェクトを受け取りますが、違いは、戻り値が配列であり、最初の要素がエラー メッセージで、2 番目の要素がであることです。要素はサーバーから返されるデータです。同期リクエストはメインスレッドをブロックするため、try-catch ステートメントを使用して例外をキャッチします。
3. 非同期と同期の違い
同期リクエストはメイン スレッドをブロックし、アプリケーションが応答しなくなります。ユーザーエクスペリエンスは低下します。非同期リクエストはメインスレッドをブロックしないため、アプリケーションの応答速度が向上し、より良いユーザーエクスペリエンスが提供されます。
同期リクエストはメインスレッドをブロックするため、その戻り値を直接使用できます。非同期リクエストはバックグラウンドで処理されるため、リクエストの結果を直接使用することはできず、コールバック関数を介して処理する必要があります。
同期リクエストは、次のステップに進む前にデータを取得する必要があるシナリオに適しています。たとえば、ログイン リクエストでは、トークンを取得する前にトークンを取得する必要があります。引き続き他のページにアクセスします。非同期リクエストは、確認コードの送信、ファイルのアップロード、その他の操作など、バックグラウンドで処理する必要があるシナリオに適しています。
4. 概要
非同期リクエストであっても同期リクエストであっても、uniapp には対応する API があり、特定のアプリケーション シナリオに従って選択して使用できます。実際の開発では、アプリケーションがユーザーのリクエストにより速く、より安定して応答できるように、さまざまなビジネス ニーズに基づいて使用するリクエスト メソッドを選択する必要があります。
以上がuniapp ネットワークリクエストの非同期同期の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。