如何從Promise響應返回數據
P粉988025835
P粉988025835 2023-07-28 10:32:51
0
1
392
<p>如何正確地從Promise返回資料?我有以下程式碼:</p> <pre class="brush:php;toolbar:false;">const axios = require("axios").default; async function getApiData(pathName: string, locale: string) { const {axiosRequestUrl} = getApiVars(pathName, locale); const axiosClient = axios.create({ baseURL: process.env.CONTENT_DOMAIN, proxy: false }) return await axiosClient.get(axiosRequestUrl); } export default function getPageData() { getApiData('shared-content', 'en-us') .then((data) => { return data; }) .catch((error: any) => { // log error here }) }</pre> <p>但是,如果我嘗試從元件中使用getPageData,最終得到的是一個不傳回任何內容的void函數,為什麼?我在這裡漏掉了什麼? </p>
P粉988025835
P粉988025835

全部回覆(1)
P粉426906369

至少,您的getPageData函數本身應該是一個async函數(為了程式碼可讀性的清晰),它將傳回getApiData呼叫傳回的Promise。

例如:


export default async function getPageData() {
    return getApiData('shared-content', 'en-us');
}

進一步的兩個提示:

您需要解析這個Promise才能讀取資料。

您可以決定在這裡或呼叫層次結構較高的位置進行錯誤處理

經驗法則:

async函數只是傳回一個Promise物件的函數。

只有在Promise被解析(使用await或.then())時才會傳回實際資料

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!