Promiseレスポンスからデータを返す方法
P粉988025835
2023-07-28 10:32:51
<p>Promise からデータを正しく返すにはどうすればよいですか?次のコードがあります: </p>
<pre class="brush:php;toolbar:false;">const axios = require("axios").default;
非同期関数 getApiData(パス名: 文字列, ロケール: 文字列) {
const {axiosRequestUrl} = getApiVars(パス名, ロケール);
const axiosClient = axios.create({
ベース URL: process.env.CONTENT_DOMAIN、
プロキシ: 偽
})
return await axiosClient.get(axiosRequestUrl);
}
デフォルト関数 getPageData() をエクスポート {
getApiData('共有コンテンツ', 'en-us')
.then((データ) => {
データを返す。
})
.catch((エラー: 任意) => {
// ここにエラーを記録します
})
}</pre>
<p>しかし、コンポーネントから getPageData を使用しようとすると、何も返さない void 関数が作成されてしまいます。なぜですか?ここで何が足りないのでしょうか? </p>
少なくとも、getPageData 関数自体は、getApiData 呼び出しによって返される Promise を返す非同期関数である必要があります (コードを読みやすくするため)。 ######例えば:############ リーリー
さらに 2 つのヒント: データを読み取るには、この Promise を解析する必要があります。ここでエラー処理を行うか、呼び出し階層の上位でエラー処理を行うかを決定できます。
経験則:
Async 関数は、Promise オブジェクトを返す単なる関数です。
実際のデータは、(await または .then() を使用して) Promise が解決された場合にのみ返されます。