[英]Unable to access global variable outside of JavaScript API Fetch
我将Fetch与API一起使用,并将结果存储在全局变量中,但会导致错误,原因是我存储API调用结果的全局变量'res'未定义。
我尝试使用let和var定义全局变量。
var res;
fetch( "https://api.taboola.com/1.2/json/apitestaccount/recommendations.get?app.type=web&app.apikey=7be65fc78e52c11727793f68b06d782cff9ede3c&source.id=%2Fdigiday-publishing-summit%2F&source.url=https%3A%2F%2Fblog.taboola.com%2Fdigiday-publishing-summit%2F&source.type=text&placement.organic-type=mix&placement.visible=true&placement.available=true&placement.rec-count=6&placement.name=Below%20Article%20Thumbnails&placement.thumbnail.width=640&placement.thumbnail.height=480&user.session=init"
)
.then(response => response.json())
.then(data => {
res = data;
})
.catch(err => {
console.log(err);
});
const contentArr = res.list;
我希望能够在Fetch之外访问变量res
。 但是当我分配'const contentArr = res.list;' 它说“ res”是不确定的
这是您的代码流:
1)声明var res
。
2)您开始从外部资源获取数据,这需要一些时间。 它不是立即完成的。
3)即使数据获取尚未完成,代码仍将继续执行。
4)您尝试分配给contentArr
res.list
,但是res = data;
尚未执行,因此得到undefined
。
通过阅读JS中的事件循环,您可以更好地理解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.