gpt4 book ai didi

javascript - 将 Axios Promise 转换为常规 JSON 数组

转载 作者:行者123 更新时间:2023-11-28 14:07:03 24 4
gpt4 key购买 nike

我正在尝试从函数返回数据,但这给我带来了问题。

我需要这个函数返回 JSON,但它返回的是一个 promise 。

这是函数:

import axios from 'axios';

const fetchData = async () => {
const result = await axios(
'https://localhost:44376/api/parts',
);
return JSON.stringify(result, null, 2);
};

export default fetchData;

当我尝试使用返回的数据时,它抛出此错误:

Uncaught TypeError: data.map is not a function

当我向控制台写入时,我看到的是:

data from machineParts API call:

Promise {<pending>}
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: {"data": [ { "id": 5, "title": "Steel Rods", "partId": 39482 etc...

但这就是我需要它返回的内容:

data from machineParts API call: (7) [ {...}, {...}, {...}, {...}, {...}, {...}, {...}]

0:
id: 5
title: "Steel Rods"
partId: 39482

1:
id: 23
title: "Honed Cylinder head"
partId: 23412

等等...

有没有办法将 Promise 转换为 JSON 数组?

谢谢!

最佳答案

您只想在调用 fetchData 函数后调用 .then() :

// fetchData.js
import axios from "axios";

const fetchData = async () => {
const result = await axios(
'https://localhost:44376/api/parts',
);
// return the result
return result;
};

export default fetchData;

现在将其导入到您的组件中,如下所示:

// App.js 
import fetchData from './fetchData' // fetchData path

const App = () => {
const [data, setData] = React.useState([])

React.useEffect(() => {

fetchData().then(res => {
setData(res.data)
})
},[])

return (
<div>
<pre>
<code> {JSON.stringify(data, null, 2)} </code>
</pre>
</div>
)
}

export default App

参见sandbox示例。

关于javascript - 将 Axios Promise 转换为常规 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61015299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com