Я использую несколько API для получения новостей и статей, связанных с JavaScript. Если первый запрос API не удался, я хочу перейти к следующему и так далее. Если один запрос успешен, я хочу остановить все запросы.
const apis = [
'http://api.stackexchange.com/2.2/questions?order=desc&sort=activity&site=stackoverflow',
'https://newsapi.org/v2/everything?language=en&q=javascript&from=' + formatDate(new Date()) + '&sortBy=publishedAt&apiKey=key',
...
]
Я пришел с этим, он работает, но это ужасно:
axios.get('http://api.stackexchange.com/2.2/questions?order=desc&sort=activity&site=stackoverflow')
.then(
response => {
console.log(response.data);
const titles = response.data.items.map(t=>{ return { title: t.title, link: t.link }});
setHive(()=>createHiveBackground(titles));
setLoader(false);
}
).catch((e)=>{
console.log(e);
axios.get('https://newsapi.org/v2/everything?language=en&q=javascript&from=' + formatDate(new Date()) + '&sortBy=publishedAt&apiKey=key')
.then(
response => {
console.log(response.data);
const titles = response.data.articles.map(t=>{ return { title: t.title, link: t.url }});
console.log(titles);
setHive(()=>createHiveBackground(titles));
setLoader(false);
}
).catch((e)=>{
setLoader(false);
console.log(e);
});
Также, если у меня много URLиспользовать это было бы болью. Что было бы лучшим способом справиться с этим?