gpt4 book ai didi

node.js - 如何用 fetch api 正确替换 axios api 并映射到 nodeJS 中接收到的数据?

转载 作者:行者123 更新时间:2023-12-05 02:42:57 25 4
gpt4 key购买 nike

这是整个文件的链接 - asyncActions.js

axios api部分-

const fetchUsers = () => {
return function (dispatch) {
dispatch(fetchUsersRrequest());
axios
.get("https://jsonplaceholder.typicode.com/users")
.then((res) => {
// res.data is the array of users
const users = res.data.map((user) => user.id);
dispatch(fetchUsersSuccess(users));
})
.catch((error) => {
// error.message gives the description of message
dispatch(fetchUsersFaliure(error.message));
});
};
};

函数输出-

{ loading: true, users: [], error: '' }
{
loading: false,
users: [
1, 2, 3, 4, 5,
6, 7, 8, 9, 10
],
error: ''
}

用fetch api替换部分-

    const fetchUsers = () => {
return function (dispatch) {
dispatch(fetchUsersRrequest());
fetch("https://jsonplaceholder.typicode.com/users")
.then((res) => {
const users = res.json().map((user) => user.id);
console.log(users);
dispatch(fetchUsersSuccess(users));
})
.catch((error) => {
dispatch(fetchUsersFaliure(error.message));
});
};
};

输出-

{ loading: true, users: [], error: '' }
{
loading: false,
users: [],
error: 'res.json(...).map is not a function'
}

我做错了什么?为什么我不能映射数据?

最佳答案

调用 res.json() 将返回一个 Promise。您需要添加第二个 then block :

fetch("https://jsonplaceholder.typicode.com/users")
.then((res) => res.json())
.then((res) => {
const users = res.map((user) => user.id);
console.log(users);
dispatch(fetchUsersSuccess(users));
})
.catch((error) => {
dispatch(fetchUsersFaliure(error.message));
});

关于node.js - 如何用 fetch api 正确替换 axios api 并映射到 nodeJS 中接收到的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67163653/

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