@reinmaker1990

Как пользоваться данными полученными из promise?

ДД, не ругайтесь пож-та, а просто подскажите или дайте ссылку на статью если есть в закладках где разжевывают эту тему, вот есть такой пример
let dataUsers;
  let url = "https://jsonplaceholder.typicode.com/users";
  fetch(url)
    .then((response) => response.json())
    .then((data) => (dataUsers = [...data]));

Как в коде потом можно пользоваться в дальнейшем данными сохраненными в переменной dataUsers?, т.е если вызвать ее сразу то очевидно что вернет undefined, если сделать через setTimeout, то могу получить значения, но это точно не верно, как при получении данных из асинхронного запроса потом их использовать в синхронном?
И если кто-то знает почему во vue.js такая же конструкция работает, т.е я могу сделать запрос из метода и записать результат в data и потом им пользоваться
  • Вопрос задан
  • 602 просмотра
Пригласить эксперта
Ответы на вопрос 2
@cloudz
Если хочется писать в стиле синхронного кода, воспользуйтесь async\await

const dataUsers = await fetch(url)...

Если хочется писать через промисы, то все должно решаться в коллбеках, т.е обработка результата вызова api, должна происходить в теле then
Ответ написан
1) Не присваивайте данные полученные в Promise глобальной переменной, иначе получите плохо поддерживаемый говнокод.
2) Вынесите код, который использует dataUsers в отдельную функцию и уже ее вызывайте в then
Это был первый этап, второй этап - https://habr.com/ru/company/mailru/blog/269465/
Ответ написан
Ваш ответ на вопрос

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

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