每当我尝试将结果提取到变量
时,我的代码都会生成undefined
var data;
fetch('./js/samplejson.json')
.then((res) => res.json())
.then(output => {
var data = output;
}
)
console.log(data);
如何获得
的结果[1, 2, 3]
内部数据变量
答案 0 :(得分:2)
您可以在此处从日志中获取数据。
fetch('./js/samplejson.json')
.then((res) => res.json())
.then(output => {
var data = output;
console.log(data);
}
)
答案 1 :(得分:2)
fetch()
来电是异步。它在数据从服务器返回之前返回。当您尝试在呼叫后访问数据时,您尝试在服务器响应之前访问它。
您需要在回调内或在从该回调调用的函数中处理里面的数据。换句话说,在var data = output;
执行此操作时,请勿执行此操作。删除var
无效,因此代码会根据评论中的建议设置全局data
变量。问题不在于范围,而在于时机。在回调中处理output
数据,或者调用另一个函数并将output
传递给它。