Ahora estoy trabajando en un proyecto un poco más grande en ReactJS. Ahora tengo una página, necesito obtener datos de varias URL (API) para esa página. Es decir, necesito obtener más de 40 resultados de esta lista: ciudad, condado, categoría, género, etc. Todo viene en URL separadas. Es así:

https://API_URL/users
https://API_URL/country-list
https://API_URL/city
https://API_URL/gender
and etc...

Actualmente estoy usando lo siguiente para obtener uno.

componentDidMount() {
     this.setState({
         isLoading: true
     });
     axios.get(API_URL + '/country-lists', {
             headers: {
                 Authorization: GetTokens
             }
         })
         .then(response => response.data)
         .then(
             (result) => {
                 this.setState({
                     countries: result.data,
                     isLoading: false
                 });
             },
             (error) => {
                 this.setState({
                     error,
                     isLoading: false
                 });
             }
         )
 }

Encontré algunas opciones adicionales, como promesas, axios.all (). Pero me pregunto si pueden ser una solución completa.

axios.all([
axios.get(https://API_URL/users'),
axios.get(https://API_URL/country-list'
     ...)
    ])
.then(axios.spread((countries, users) => {
 // ... });

Y

Promise.all([users, countries, products]).then(function(values) {
...
});

¿De qué manera debe usar para obtener esos datos? ¿O hay una mejor solución para obtener? Al mismo tiempo, teniendo en cuenta la conexión a Internet y los diversos errores.

1
Oktam Yaqubov 20 dic. 2019 a las 10:16

2 respuestas

La mejor respuesta

Creo que Axios all es la mejor solución ...

También le recomiendo que eche un vistazo a este enlace, donde se propone una gran solución para la ejecución de múltiples llamadas asincrónicas: AsynPipe

2
Agnola Tommaso 20 dic. 2019 a las 09:41

Sí, Axios satisfará sus necesidades. Adelante y complétalo.

0
Gowrishankar R 20 dic. 2019 a las 10:23