代码之家  ›  专栏  ›  技术社区  ›  Klt

如何将提取数据放入变量中

  •  2
  • Klt  · 技术社区  · 6 年前

    我有一个代码 undefined 每当我尝试将结果提取到变量中时

    var data;
    fetch('./js/samplejson.json')
        .then((res) => res.json())
        .then(output => {
            var data = output;
        } 
    )
    console.log(data);
    

    如何获得

    [1, 2, 3]
    

    内部数据变量

    2 回复  |  直到 6 年前
        1
  •  5
  •   Michael Geary    6 年前

    这个 fetch() 呼叫是 异步的 . 它在数据从服务器返回之前返回。当您在呼叫后尝试访问数据时,您是在服务器响应之前尝试访问数据。

    你需要处理这些数据 在…内 回调,或在从该回调调用的函数中。换句话说,你在哪里 var data = output; ,不要这样做。移除 var 所以代码设置了全局 data 注释中建议的变量。问题不在于范围,而在于时机。处理 output 数据就在回调函数中,或者调用另一个函数并传递 输出 对它。

        2
  •  1
  •   sanatsathyan    6 年前

    您可以从这里的日志中获取数据。

    fetch('./js/samplejson.json')
        .then((res) => res.json())
        .then(output => {
            var data = output;
            console.log(data);
        } 
    )