json 使用获取API访问项

kwvwclae  于 2022-12-20  发布在  其他
关注(0)|答案(2)|浏览(164)

我想使用fetch和async/await访问API中的用户列表,并在我的html页面中显示它们。
我收到对象,并希望使用
我收到对象,我想使用Map访问项目。
但我得到这个错误:
Uncaught (in promise) TypeError: response.map is not a function
我试过这个:

async function getData() {
    let response = await ((await fetch("https://reqres.in/api/users?page=1")).json());
    
    return response.map(user => {user.id;});
}
getData()
    .then(data => {
        console.log(data[0])
    });
okxuctiv

okxuctiv1#

如果你仔细观察,就会发现response不是一个数组,你实际上收到的是一个具有以下结构的对象:

{
  page: 1,
  per_page: 6,
  total: 12,
  total_pages: 2,
  data: [...]
}

因此,您希望访问response.data

wgx48brx

wgx48brx2#

您的响应不是数组。map()将无法处理该数组。data[0]也无法处理。您似乎打算执行response.data.map((user) => user.id)

async function getData() {
  
  const response = await ((await fetch("https://reqres.in/api/users?page=1")).json())

  return response.data.map((user) => user.id)
}

getData()
  .then(data => {
    console.log(data)
  })

如果您仍然只想获得第一个响应,那么可以使用之前使用的相同的data[0]

相关问题