如何在JS中导出变量之前运行fetch?

时间:2017-08-05 02:07:10

标签: javascript ecmascript-6

如上所述,我想导出包含来自api的一些数据的数组,但这里有一个东西,在运行fetch之前导出所以数组为空以便导出。我尝试超时导出但不工作。那我该怎么办呢? 谢谢 ! 这是我的代码:

  const arr = [];
     fetch(base, {
     method: 'GET',
     headers: {
         'Accept': 'application/json, text/plain, */*',
         'Content-Type': 'application/json',
      }
  })
   .then(response => { response.json()}).then(json => {
  arr.push(json);
 })


export default arr // show empty

最后,我按照自己的方式得到了它,所以我为那些和我一样坚持的人解释。 这就是,导出函数返回promise并使用promise函数内部的回调并推送我们需要从import promise做的任何数组。

1 个答案:

答案 0 :(得分:2)

尝试在response.json()之前添加return关键字。我认为发生的事情是你的第一个.then没有返回promise *,这意味着第二个。然后接收undefined作为json参数。

*见下面的评论; 返回一个promise,但它解析为undefined