如何从Promise响应中返回数据
P粉988025835
2023-07-28 10:32:51
<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>
至少,您的getPageData函数本身应该是一个async函数(为了代码可读性的清晰),它将返回getApiData调用返回的Promise。
例如:
进一步的两个提示:
您需要解析这个Promise才能读取数据。
您可以决定在这里或者调用层次结构较高的位置进行错误处理
经验法则:
async函数只是返回一个Promise对象的函数。
只有在Promise被解析(使用await或.then())时才会返回实际数据