数组不'不要保持内容,也许是有宣言的东西
Array doesn't keep content, maybe something with declaration
我有一个在else结构中声明的数组
var days = new Array();
$.ajax({
url: 'someurl',
dataType: 'jsonp',
success: processJSON
});
我在processJSON函数中处理来自ajax调用的数据
function processJSON(jsonData) {
var weather = jsonData.data.weather;
for(var key in weather) {
var day = weather[key];
days.push(new Array(day.tempMaxC, day.type));
}
}
我在days数组中添加了一些其他数组。
如果我在控制台中(在processJSON函数中)检查它,长度为3/
然后,当我想在ajax调用下的某些代码中使用该变量时,什么都不起作用,当我检查长度时,它是0。我想这是有宣言的东西?
Ajax调用下的代码是否发生在processJson函数之后?对ProcessJson函数的调用是异步的,只有在Ajax调用完成后才会发生。然而,它后面的代码可能以前发生过。所以这可能是一个时机问题。如果您需要该数组进行任何其他处理,则应将其放在回调中,或者在您知道回调已完成之后。
将声明置于条件/else 之外
var days = new Array();
if(...){
}else{
$.ajax
}
您需要等待XHR调用完成。看起来你正在使用JQuery,所以请查看他们的延迟文档(http://api.jquery.com/deferred.then)。
你会得到这样的结果:
$.ajax({
url: 'someurl',
dataType: 'jsonp'
}).then(function( jsonData ) {
var weather = jsonData.data.weather;
for(var key in weather) {
var day = weather[key];
days.push(new Array(day.tempMaxC, day.type));
}
console.log( 'done!', days );
});
相关文章:
- JavaScript上的通配符(也许这不费吹灰之力?)
- 也许是JavaScript中的monad
- 向下滚动页面时在侧边栏中显示部分标题(也许使用 BS scrollspy?
- Addeventlistener 已转换为 IE.也许是另一个错误
- 谷歌翻译-也许通用API逻辑
- 我如何在HTML中进行自动更改测试(也许是jquery?)
- 深度减少(也许是采摘?)对象数组
- 猫头鹰旋转木马不起作用,也许我链接不正确
- 如何在javascript中计算时间(也许使用jquery)
- 为什么我无法让我的图像出现在表格单元格/节点中.也许我可以得到一些结束
- 如何配置除 {{$x}} 以外的其他尖括号,也许是 [[$x]]
- 匿名函数在 Javascript 中不起作用?(或者也许我只是没有得到匿名函数)
- Javascript Array 奇怪的行为.全球宣言无法保持价值
- node.js & mongo schema,寻找一些介绍材料,也许是教程
- 通过Websocket将图像传输到WebGL Vs Canvas,也许还可以与worker一起传输
- 内联JavaScript抛出“未定义”(它是!) - 也许与WordPress相关
- IE 11有没有办法像chrome一样显示物体的内部?也许是一个插件
- Chrome(也许是Safari?)激发了“;模糊”;当浏览器失去焦点时,在输入字段上显示两次
- 数组不'不要保持内容,也许是有宣言的东西
- Jquery不工作(也许AJAX重载-或者只是语法不好?)