Есть большой массив гео-меток, около 800 штук. Для каждой из меток в массиве мне нужно:
- Сделать запрос на what-the-city.com чтобы узнать, какой город расположен вблизи данной гео-метки.
- Как только получили название города, нужно:
- Сделать запрос на tell-me-weather.com чтобы получить погоду в этом городе
- Сделать запрос на what-the-country.com чтобы узнать, в какой стране находится этот город
- Сделать запрос на currency-by-country.com чтобы узнать валюту страны, где находится город
На самом деле не важно куда именно и за какой информацией нужно обращаться, важна последовательность запросов.
Есть несколько требований:
- Пользователь должен получить данные именно в той последовательности, в которой гео-метки находятся в массиве.
- Ответ должен быть получен как можно быстрее. Как я понимаю, просто пробегаться по элементам массива по очереди будет неэффективно. Эффективнее будет что-то типа Promise.all, но он прервется если один из запросов будет отклонен. А нужно чтобы были выполнены все запросы. А при неудачной попытке дать пользователю дефолтные данные вместо тех, которые не удалось получить.
- Сделать что-то, чтобы не превышать количество запросов на эндпоинтах. Но как? Вручную устанавливать таймаут?
Я не прошу код (хотя можно и в коде :) ), а просто хочу понять как это все правильно организовать по шагам в соответствие с требованиями выше. Спасибо.