Как решить такую задачу с переадресацией?

есть список url, предположим это массив, ну может и лучший вариант есть.
есть метод он шлёт запрос на некий url, если он не доступен метод шлёт ошибку 500 в кетч, при таком раскладе надо брать следующий url из массива и пытаться послать запрос на него, если и на него не получилось то слать дальше. Какие могут быть элегантные варианты?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 2
@wakenby
Вот элегантное решение:

Создаем массив из нужных нам адресов, после пишем функцию которая будет посылать запрос на взятый url из массива, если функция шлет ошибку 500 в cath, то осуществляем переход к следующему url из массива, и так дальше.
Ответ написан
@StiflerProger
async function listFetch(urls, options) {

  if (!Array.isArray(urls)) urls = [urls];

  try {
  
    return await fetch(urls[0], options);

  } catch (e) {
  
    if (urls.length <= 1) throw 'Every link throws error';
    
    return listFetch(urls.splice(1), options);
    
  }

}

const arr = ["http://first.link", "http://second.link"];

listFetch(arr).then(res => console.log(res)).catch(err => console.error(err));
Ответ написан
Ваш ответ на вопрос

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

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