function loadSubs() {
channel_url = "https://www.googleapis.com/youtube/v3/channels?part=statistics&id="+channelId+"&key="+key;
var subcount;
$.getJSON(channel_url, function(data) {
subcount = data.items[0].statistics.subscriberCount;
console.log("In scope: "+subcount);
});
console.log("Out of scope: "+subcount);
do_something_with_data();
}
控制台给了我
Out of scope: undefined
In scope: 1364189
似乎当它从getJSON作用域出来时,变量就会返回到它的未定义状态。我试图用
subcount = '';
使它成为全局的,但它做了同样的事情,而不是得到未定义的,我得到一个空白字符串。我还认为,超出范围的日志首先出现的事实也是问题的一部分。
谢谢
编辑:我在另一个线程jQuery getJSON save result into variable上基于这个答案声明了'subcount'
基于这个线程:是否可以将async:false设置为$.getjson call
我将$.getjson更改为$.ajax,并将async:false
function get_subcount(chan_url) {
var subcount;
$.ajax({
url:chan_url,
datatype:'json',
async:false,
success: function(data) {
subcount = data.items[0].statistics.subscriberCount;
}
});
return subcount
}
现在我在前面的“范围内”和“范围外”中得到了相同的答案
问题内容: 我正在使用angularjs编写示例应用程序。我在chrome浏览器上遇到以下错误。 错误是 错误:[ng:areq] http://errors.angularjs.org/1.3.0-beta.17/ng/areq?p0=ContactController&p1=not%20a%20function%2C%20got%20undefined 呈现为 参数“ ContactContr
问题内容: 我遇到下面显示的行未将变量存储到全局范围的问题: 我究竟做错了什么?我需要将其包装到单独的函数中还是什么? 问题答案: 该代码在收到响应之前运行。 这就是为什么。 在这里,您可以看到警报发生故障。默认情况下,AJAX请求不会阻止后续代码运行。 这就是拥有 回调 方法的全部目的。该方法在适当的时间被调用,而不是依赖于同步执行。
本文向大家介绍请你说一说STL中MAP数据存放形式?相关面试题,主要包含被问及请你说一说STL中MAP数据存放形式?时的应答技巧和注意事项,需要的朋友参考一下 红黑树。unordered map底层结构是哈希表
问题内容: 我正在使用angularjs编写示例应用程序。我在chrome浏览器上遇到以下错误。 错误是 错误:[ng:areq] http://errors.angularjs.org/1.3.0-beta.17/ng/areq?p0=ContactController&p1=not%20a%20function%2C%20got%20undefined 呈现为 参数“ ContactContr
我正在使用下面的gql查询生成一个GraphQL请求。 但是当我在下面的代码中注销它时,它返回未定义的。 知道我做错了什么吗?该怎么纠正?
问题内容: 我是DDD的新手,并且正在尝试将其应用于现实生活中。毫无疑问,此类验证逻辑(如空检查,空字符串检查等)直接进入实体构造函数/属性。但是,如何验证某些全球规则(例如“唯一用户名”)呢? 因此,我们有实体用户 和用户存储库 选项有: 将存储库注入实体 将存储库注入工厂 在域服务上创建操作 ??? 并且每个选项都更加详细: 1。将存储库注入实体 我可以查询实体构造函数/属性中的存储库。但是我