Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » jQuery » Как сделать асинхронный цикл $.ajax ?

Как сделать асинхронный цикл $.ajax ?


     27.01.2018    асинхронный, цикл, ajax, jquery    Все вопросы » jQuery    975

вопрос
Здравствуйте. Я только недавно познакомился с асинхронным программированием в js и у меня возникли некоторые вопросы, ответы на которых пока не смог сам найти, по этому надеюсь на вашу помощь.
Задача: вывести список валютных пар, который содержит: название валюты, цену и изменение за 24 часа.
Демо страника

Информация приходит в виде нескольких json файлов так как базовая валюта может быть только одна.
  1. USD/CAD, USD/CHF, USD/JPY, USD/RUB
  2. EUR/JPY, EUR/RUB, EUR/USD
  3. AUD/USD
  4. GBP/USD
  5. NZD/USD

Отдельный пункт списка это отдельный запрос json файла. Плюс все эти запросы можно умножить на 2, так как я запрашиваю еще вчерашние результаты, для калькуляции дельты (3 пункта выводимого списка). Всего получается 10 запросов.

У меня все получилось сделать. Результат заносится в DOM, только тогда, когда все запросы выполнились, но мне не нравится сам код, так как эти отдельные запросы я записываю отдельно. Хотелось бы пустить цикл.
Использовал я конструкцию $.when().then. Какой код сейчас:

Чтобы все работало приходится описывать каждый запрос, который имеет одинаковый шаблон. Тяжело на этом смотреть, когда знаешь что такое цикл.

Попробовал сделать циклом, но результаты выводятся не всегда, асинхронно не работает.

Идея была в том, чтобы после выполнения функции getAllCurrency выполнялось тело .then()

Итог: подскажите, пожалуйста, как это запихнуть правильно в цикл, чтобы выводить результат после успешного выполнения всех запросов, спасибо!
Демо страника

Ответа пока нет


2 комментария

BRAGA
Юзер

BRAGA - 27 января 2018 19:45 -

Ccылка на codepen

BRAGA
Юзер

BRAGA - 27 января 2018 21:02 -

Ссылка на codepen с циклом, так как бы я хотел, но не работает асинхронно.
P.S Можете писать пробелы в html, чтобы обновлять страницу codepen.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх