Heim  >  Fragen und Antworten  >  Hauptteil

So geben Sie Daten aus der Promise-Antwort zurück

<p>Wie werden Daten von Promise korrekt zurückgegeben? Ich habe den folgenden Code: </p> <pre class="brush:php;toolbar:false;">const axios = require("axios").default; asynchrone Funktion getApiData(pathName: string, locale: string) { const {axiosRequestUrl} = getApiVars(pathName, locale); const axiosClient = axios.create({ Basis-URL: process.env.CONTENT_DOMAIN, Proxy: falsch }) return wait axiosClient.get(axiosRequestUrl); } Standardfunktion getPageData() exportieren { getApiData('shared-content', 'en-us') .then((data) => { Rückgabedaten; }) .catch((error: any) => { // Fehler hier protokollieren }) }</pre> <p>Wenn ich jedoch versuche, getPageData aus der Komponente zu verwenden, erhalte ich eine void-Funktion, die nichts zurückgibt. Warum? Was fehlt mir hier? </p>
P粉988025835P粉988025835474 Tage vor435

Antworte allen(1)Ich werde antworten

  • P粉426906369

    P粉4269063692023-07-29 00:59:48

    至少,您的getPageData函数本身应该是一个async函数(为了代码可读性的清晰),它将返回getApiData调用返回的Promise。

    例如:


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

    进一步的两个提示:

    您需要解析这个Promise才能读取数据。

    您可以决定在这里或者调用层次结构较高的位置进行错误处理

    经验法则:

    async函数只是返回一个Promise对象的函数。

    只有在Promise被解析(使用await或.then())时才会返回实际数据

    Antwort
    0
  • StornierenAntwort