JS中的IIFE用于获取数据

时间:2018-06-28 20:42:37

标签: javascript

我正在尝试编写一个函数,该函数将数据拉入数组,然后将其打印到condole中。为了进行正确的工作for循环,我使用IIFE函数来一致地检索所有数据,但是代码无法正常工作。结果为空数组:[]。我认为这是我做错IIFE造成的麻烦。我该如何解决此错误?

var url = [
  'http://www.json-generator.com/api/json/get/cevhxOsZnS',
  'http://www.json-generator.com/api/json/get/cguaPsRxAi',
  'http://www.json-generator.com/api/json/get/cfDZdmxnDm',
  'http://www.json-generator.com/api/json/get/cfDZdmxnDm',
  'http://www.json-generator.com/api/json/get/cfDZdmxnDm'
]

function fetchData(arg) {
  var urls = Array.isArray(arg) ? arg : [...arguments]
  var arr = [];
  for (var i = 0; urls.length < i; i++) {
    (function (i) {
      fetch(urls[i])
        .then(res => res.json())
        .then(res => arr.push(res))
    })(i)
  }
  return arr;
}

console.log(fetchData(...url))   // printed empty array: []

0 个答案:

没有答案