如何将获取的数据放入变量中

How to put fetch data in a variable

每当我尝试将结果提取到变量中时,我的代码都会产生 undefined

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

如何获得

的结果
[1, 2, 3]

内部数据变量

您可以在此处从日志中获取数据。

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

fetch() 调用是 异步的 。它 returns 在数据从服务器返回之前。当您尝试在调用后访问数据时,您正在尝试在服务器响应之前访问它。

您需要在回调中 处理该数据,或者在从该回调调用的函数中处理。换句话说,在你做 var data = output; 的地方,不要那样做。删除 var 无济于事,因此代码按照评论中的建议设置全局 data 变量。问题不在于范围,而在于时机。在回调中处理 output 数据,或者调用另一个函数并将 output 传递给它。