我遇到了问题。我有这段代码:
setInterval(function() {
$.ajax({ url: url, success: function(data, count){
var obj = jQuery.parseJSON(data);
var content = obj.results[0].content;
}})
}, 2000)
现在这段代码每 2 秒运行一次并进行 ajax 调用。我在这一行中不断收到 obj 为 null 的错误:
var content = obj.results[0].content;
我很确定这是因为当解析器到达这一行时 parseJson 还没有完成。我需要一种方式来说明 obj = null 不要运行 var content = obj.results[0].content ; 代码。
希望这是有道理的。
最佳答案
如果你想吐槽一下:
var content = obj && obj.results && obj.results[0] && obj.results[0].content;
但我真的不认为那是问题所在……只有在一切都完成后才会调用回调。并且 JSON 解析是同步的。您确定服务器正在返回正确的数据吗?
仅供引用,您还可以为 jQuery.ajax
调用提供 dataType
选项,以便自动完成 JSON 解析。
关于javascript - 仅在变量不等于 null 时运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3497579/