Как извлечь json данных из Promise.all в node.js - PullRequest
0 голосов
/ 07 мая 2020

Это отлично работает

esi_requests.fetch('character_info', {character_id: character_id})
  .then( results => results.json() )
  .then( results => {
    console.log(results)
  })

Но как мне получить ту же информацию из 2 обещаний с помощью Promise.all?

  Promise.all([
    esi_requests.fetch('character_info', {character_id: character_id}),
    esi_requests.fetch('character_info', {character_id: member_id})
  ])
  .then( results=> {
    // what do I do here to translate the response-body from both requests to json?
  })
  .then( results => {
    console.log(results)
  })

1 Ответ

1 голос
/ 07 мая 2020

Вы можете сделать это до того, как получите результаты. На самом деле производительность будет немного лучше, если вы это сделаете. Вам не нужно ждать, пока все запросы завершатся sh перед тем, как начать. json их.

например:

 Promise.all([
    esi_requests.fetch('character_info', {character_id: character_id}).then(res => res.json()),
    esi_requests.fetch('character_info', {character_id: member_id}).then(res => res.json())
  ])
  .then( results => {
    console.log(results)
  })

То, что вы, вероятно, действительно хотите, это функция, которая настраивает это за вас.

const example = id => esi_requests.fetch('character_info', {character_id: id}).then(res => res.json());

Promise.all([character_id, member_id].map(example))
  .then( results => {
    console.log(results);
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...