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

Javascript 如何将获取数据放入变量中,javascript,json,variables,fetch,put,Javascript,Json,Variables,Fetch,Put,每当我尝试将结果提取到变量中时,我有一个代码会导致未定义 var data; fetch('./js/samplejson.json') .then((res) => res.json()) .then(output => { var data = output; } ) console.log(data); 我怎样才能得到结果 [1, 2, 3] 在数据变量内部您可以从这里的日志中获取数据 var data; fetch('./js/s

每当我尝试将结果提取到变量中时,我有一个代码会导致
未定义

var data;
fetch('./js/samplejson.json')
    .then((res) => res.json())
    .then(output => {
        var data = output;
    } 
)
console.log(data);
我怎样才能得到结果

[1, 2, 3]

在数据变量内部

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

var data;
fetch('./js/samplejson.json')
    .then((res) => res.json())
    .then(output => {
        var data = output;
    } 
)
console.log(data);
fetch('./js/samplejson.json')
    .then((res) => res.json())
    .then(output => {
        var data = output;
        console.log(data);
    } 
)
fetch()
调用是异步的。它在数据从服务器返回之前返回。当您在呼叫后尝试访问数据时,您是在服务器响应之前尝试访问数据


您需要在回调内部或从该回调调用的函数中处理该数据。换句话说,在这里你做
var数据=输出,不要这样做。删除
var
没有帮助,因此代码会按照注释中的建议设置全局
数据
变量。问题不在于范围,而在于时机。在回调中处理
输出
数据,或者调用另一个函数并将
输出
传递给它。

@MichaelGeary是的。这是真的。他在顶部声明了数据。就像前面的[1,2,3]一样