@Gagatyn
Самоучка

Как сделать несколько запросов в js?

Hacker news предоставляет свой API новостей, работы и т.д.
топ новости 500 штук в виде ID - https://hacker-news.firebaseio.com/v0/topstories.json
и одна новость - https://hacker-news.firebaseio.com/v0/item/9130260.json

Как связать и вывести эти топ новостей в консоль?

Моя попытка не успешна, запутался. Ожидается, что функция просто вернет список новостей в useEffect(f(), [])

export async function getStoryIDs() {
  let r = await fetch("https://hacker-news.firebaseio.com/v0/topstories.json");
  r = await r.json();

  return await r;
}

export async function getNews() {
  let arrayIDs = await getStoryIDs();
  let array = [];

  // console.log(arrayNews);
  for (let news in arrayIDs) {
    let r = await fetch(
      `https://hacker-news.firebaseio.com/v0/item/${news}.json`
    );
    r = await r.json();

    // .log(await r);
    array.push(await r);
  }
}

//...
  let [data, setData] = useState([]);

useEffect(() => {
    setData(getNews());
  }, []);
  • Вопрос задан
  • 466 просмотров
Решения вопроса 1
wapster92
@wapster92 Куратор тега JavaScript
500 запросов ожидают друг друга)) Про оптимизацию не слышали. И ты одну получить то можешь?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Alexandroppolus
@Alexandroppolus
кодир
let [data, setData] = useState([]);
useEffect(() => { setData(getNews()); }, []);


У тебя в data попадет промис.

Всё-таки использовать async/await следует, только разобравшись с промисами и вообще с асинхронностью...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы