2016-05-06 9 views
3

ich Promise.all() bin mit einem Bündel von axios.get() Anrufe zu tätigen, und dass sie alle Rückkehr, bevor Sie fortfahren zu gewährleisten, etwa so:von Axios Konvertieren mit Promise.all zu holen()

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

     return data; 
    }); 

Die Funktionen getJSON1() und getJSON2() Blick wie:

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

das ist alles funktioniert gut, aber wenn ich frage mich axios mit holen ersetzen die Größe meiner endgültigen bundle.js reduzieren würde, wenn webpack seine Sache getan tut.

Ich probiere die fetch polyfill und integriere es mit Webpack in Übereinstimmung mit this blog, aber ich bin nur nicht sicher, wie man getJSON1() anpassen, um fetch zu verwenden. Ich habe versucht, die folgenden:

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

Dies führt zu einer Typeerror: Objekt ist kein Konstruktor (evaulating neuen Versprechen ')

+0

Haben Sie jeweils einzeln aufrufen getestet holen? z.B. funktionieren 'getJSON1()' und 'getJSON2()' alleine? Wo in Ihrem Code zeigt der Fehler auf? – Clarkie

Antwort

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); 
     }); 
}