如何从Promise响应中返回数据
P粉988025835
P粉988025835 2023-07-28 10:32:51
0
1
462
<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())时才会返回实际数据

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板