Javascript 如何使用promise.all从响应中获取最终json对象?

Javascript 如何使用promise.all从响应中获取最终json对象?,javascript,async-await,fetch,Javascript,Async Await,Fetch,我正在使用promise.all去获取三个端点 promise.all返回了一系列响应,如下所示: 0: Response {type: "basic", url: "https://cdpn.io/boomboom/v2/af3910a6-429f-4c74-9ad5-dfe1c4aa04f2", redirected: false, status: 403, ok: false, …} 1: Response {type: "basic", url: "https://cdpn.io/boo

我正在使用promise.all去获取三个端点

promise.all返回了一系列响应,如下所示:

0: Response {type: "basic", url: "https://cdpn.io/boomboom/v2/af3910a6-429f-4c74-9ad5-dfe1c4aa04f2", redirected: false, status: 403, ok: false, …}
1: Response {type: "basic", url: "https://cdpn.io/boomboom/v2/6bc92fdd-b0f4-4286-ad71-1f99fb4a0d1e", redirected: false, status: 403, ok: false, …}
2: Response {type: "basic", url: "https://cdpn.io/boomboom/v2/f25fa661-3073-414d-968a-ab062e3065f7", redirected: false, status: 403, ok: false, …}
但我无法获得这些端点的实际json,我总是会得到更多承诺

im遇到问题的代码部分位于函数的底部,响应数组保存在一个名为:
linkstospecierresponses

我尝试过在响应数组上映射,并使用.json()以及之后的响应,如下所示:

0: Response {type: "basic", url: "https://cdpn.io/boomboom/v2/af3910a6-429f-4c74-9ad5-dfe1c4aa04f2", redirected: false, status: 403, ok: false, …}
1: Response {type: "basic", url: "https://cdpn.io/boomboom/v2/6bc92fdd-b0f4-4286-ad71-1f99fb4a0d1e", redirected: false, status: 403, ok: false, …}
2: Response {type: "basic", url: "https://cdpn.io/boomboom/v2/f25fa661-3073-414d-968a-ab062e3065f7", redirected: false, status: 403, ok: false, …}
linksToSpecieResponses.forEach(response=>response.json()。然后(x=>results.push(x))

但它不起作用

你知道我必须做什么才能得到这些响应的实际json吗

以下是代码笔中的代码:

这是代码:

const TITLE = 'Princess Mononoke'
const SPECIE = 'God'
const SOECIES_URL = 'htps://ghibliapi.herokuapp.com/species/b5a92d0e-5fb4-43d4-ba60-c012135958e4'

async function getMoro(url) {
  const moviesResponse = await fetch(url)
  const movies = await moviesResponse.json()
  const movie = movies.find(movie => movie.title === TITLE)

  const speciesOfMoviePromises = movie.species.map(async url => await fetch(url))
  const speciesOfMovieResponses = await Promise.all(speciesOfMoviePromises)

  let speciesLinks = []
  for(let i = 0 ; i<speciesOfMovieResponses.length ; i++){
   speciesLinks.push( await speciesOfMovieResponses[i].json() )
  }

  const linksToSpecie = speciesLinks.map(async x =>  await fetch(x.id))
  const linksToSpecieResponses = await Promise.all(linksToSpecie)
  // What should i do with this array of promises?
  console.log('linksToSpecieResponses: ', linksToSpecieResponses)

  return await linksToSpecieResponses
}

getMoro('https://ghibliapi.herokuapp.com/films')
const TITLE='Mononoke公主'
常量物种=‘上帝’
常数htps://ghibliapi.herokuapp.com/species/b5a92d0e-5fb4-43d4-ba60-c012135958e4'
异步函数getMoro(url){
const moviesResponse=等待获取(url)
const movies=await moviesResponse.json()
const movie=movies.find(movie=>movie.title===title)
const speciesOfMoviePromises=movie.species.map(异步url=>await-fetch(url))
const speciesOfMovieResponses=等待承诺。全部(MoviePromisses speciesOfMoviePromises)
让speciesLinks=[]
for(设i=0;我等待获取(x.id))
const linksToSpecieResponses=等待承诺。全部(linksToSpecie)
//我该如何处理这些承诺?
log('linkstospecierresponses:',linkstospecierresponses)
返回等待链接到指定响应
}
格特莫罗https://ghibliapi.herokuapp.com/films')

我认为您缺少了这样一行:
constjsonfromresponses=wait Promise.all(linksToSpecieResponses.map(response=>response.json())
您的一些请求正在抛出未捕获的403。您正在命中的URL是
https://cdpn.io/boomboom/v2/f25fa661-3073-414d-968a-ab062e3065f7
这是一个错误的URL。我认为您的一些请求缺少基本URL。您预期的结果是什么(请描述您在这里做什么/试图实现什么)?谢谢。我想您遗漏了一行,比如:
constjsonfromresponses=wait Promise.all(linksToSpecieResponses.map(response=>response.json())
您的一些请求正在抛出未捕获的403。您正在命中的URL是
https://cdpn.io/boomboom/v2/f25fa661-3073-414d-968a-ab062e3065f7
这是一个错误的URL。我认为您的一些请求缺少基本URL。您预期的结果是什么(请描述您在这里做什么/试图实现什么)?谢谢。