@okonoshi

Как обработать массив responses?

Ребята, всю голову уже сломал.
Я вроде понял тему, а оказалось нифига не могу понять

Почему это работает?
let a = await fetch(`https://api.github.com/users/iliakan`);
 let b = await a.json();

А вот это не работает?
const responses = await names.map((name) =>
    fetch(`https://api.github.com/users/${name}`)
await responses[0].json() // json is not a function

Почему обработать можно только через then в самом map?

Почему тут без Promise.all тоже не обрабатывает респонсы?
.then(responses => Promise.all(responses.map(resp => resp.json())))
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 2
@7rows
Frontend Разработчик / Vue / JS / TS / CSS
@disappearedstar
Фронтенд-разработчик
await names.map — бессмысленная конструкция. Метод map возвращает массив, а не промис. Вам нужен Promise.all:

const responses = await Promise.all(names.map((name) => fetch(`https://api.github.com/users/${name}`)));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы