繁体   English   中英

无法访问JavaScript API提取之外的全局变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM