2016-05-06 1 views
3

J'utilise Promise.all() pour faire un tas de axios.get() appels et faire en sorte que tous reviennent avant de poursuivre, comme suit:Conversion de Axios à Fetch avec Promise.all()

Promise.all([getJSON1(), getJSON2()]) 
    .then((arr) => { 
     var data = { 
      json1: arr[0], 
      json2: arr[1] 
     }; 

     return data; 
    }); 

Les fonctions getJSON1() et getJSON2() regard comme:

function getJSON1() { 
    return axios.get('json1-url.json'); 
} 

Ceci est tout fonctionne bien, mais je me demande si le remplacement Axios avec fetch réduirait la taille de mes derniers bundle.js quand webpack est fait faire sa chose.

J'essaie le fetch polyfill et l'intégrant avec webpack en conformité avec this blog, mais je ne suis pas sûr de savoir comment ajuster getJSON1() pour utiliser fetch. J'ai essayé les éléments suivants:

function getJSON1() { 
    return fetch('json1-url.json'); 
} 

Il en résulte une TypeError: Object est pas un constructeur (evaulating 'nouvelle Promesse')

+0

Avez-vous testé chaque Fetch appeler individuellement? par exemple. est-ce que 'getJSON1()' et 'getJSON2()' fonctionnent d'eux-mêmes? Où se trouve l'erreur dans votre code? – Clarkie

Répondre

0

We can call the fetch method like this , hope it may help you:-

function getJSON1() { 
    return fetch('json1-url.json') 
     .then((response) => response.json()) 
     .then((responseJson) => { 
     return responseJson; 

     }) 
     .catch((error) => { 
     console.error(error); 
     }); 
}