如何获取数据然后保存在变量中?
var store;
fetch('https://api.coindesk.com/v1/bpi/historical/close.json?start=2013-09-01&end=2013-09-05')
.then(function(response) {
return response.json();
})
.then(function(data) {
store = data;
console.log('Data is', store);
})
.catch(function(err) {
console.log('Unable to fetch the data', err);
});
console.log(store);
console.log给了我未定义的变量。 有人可以描述它是如何工作的吗?
答案 0 :(得分:0)
我假设您正在谈论的未定义控制台日志是最后一个。我转载了您的提取代码,并且运行良好。我认为正在发生的事情是,最后一行(console.log(store)
)发生在之前之前,因为获取是异步的,所以存储变量已作为获取行的一部分进行了更新。
如果您需要对fetch的结果进行处理,则必须将其嵌套在promise解析中(即,您在其中重新定义store
),或者使用async / await来使{{1 }}代码同步运行,并在控制台日志结束前运行。