0

Здравствуйте товарищи!

Есть три переменные

let person1, person2, person3;

А также есть три запроса на /people/1, people/2, people/3, окончательный результат которых мы присваиваем одной из переменных выше соответственно

fetch('https://swapi.dev/api/people/1', {
  method: 'GET',
})
  .then((res) => {
    return res.json();
  })
  .then((res) => {
    console.log(res);
    person1 = res;
  });

Далее нужно три новых переменных передать в функцию goFurther

function goFurther(person1, person2, person3) {
  console.log(person1, person2, person3);
}

Не могу понять как справиться с этой задачей без setTimeout.

Пытаюсь решить данную задачку с помощью Promise или async, await - однако никак не могу разобраться.

Пожалуйста помогите конкретно с этим примером! Аналогия от решения сильно поможет мне разобраться. Также не могу понять как здесь применить callback схему.

1 Answers1

0

Кстати, запрос можно вынести как отдельную функцию, чтобы 3 раза не дублировать код:

const logPersons = (person1, person2, person3) => {
  console.log('person1', person1);
  console.log('person2', person2);
  console.log('person3', person3);
}

const getPerson = async(personId) => { try { const response = await fetch(https://swapi.dev/api/people/${personId});

if (response.ok) {
  const data = await response.json();

  return data;
} else {
  console.log(response);
}

} catch (e) { console.log(e.message); } }

const getPersons = async() => { let [ person1, person2, person3 ] = await Promise.allSettled([ getPerson(1), getPerson(2), getPerson(3) ]);

logPersons(person1, person2, person3); }

getPersons();

EzioMercer
  • 6,178
  • 2
  • 9
  • 28
  • 1
    В if (response.ok) явно не хватает случая else – Alexey Ten Jul 19 '22 at 16:40
  • 1
    И getPerson(n) будут выполнятся последовательно, что может быть не очень хорошо. – Alexey Ten Jul 19 '22 at 16:40
  • @AlexeyTen Сам сказал и сам же не использовал :) Спасибо за замечания! – EzioMercer Jul 19 '22 at 17:56
  • 1
    @EzioMercer - благодарю - все сработало как полагается. +100 вам в карму – Yury Kishko Jul 20 '22 at 11:24