3

Promise.all()用来打一堆axios.get()电话并确保它们在继续之前都返回,如下所示:

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

        return data;
    });

功能getJSON1()getJSON2()外观如下:

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

这一切都很好,但是我想知道当 webpack 完成它的工作时,用 fetch 替换 axios 是否会减小我最终 bundle.js 的大小。

我正在尝试使用fetch polyfill 并将其与 webpack 集成但我不确定如何调整getJSON1()以使用 fetch。我尝试了以下方法:

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

这会导致TypeError: Object is not a constructor (evalating 'new Promise')

4

1 回答 1

0

我们可以这样调用 fetch 方法,希望对您有所帮助:-

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

      })
      .catch((error) => {
        console.error(error);
      });
}
于 2016-11-28T12:16:53.930 回答