javascript - 仅在变量不等于 null 时运行代码

标签 javascript jquery

我遇到了问题。我有这段代码:

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/

相关文章:

javascript - 在 this.state 中使用 JSX 但它被呈现为纯文本

javascript - 单击提交按钮后显示隐藏的表格

javascript - 单击另一个 Accordion 时隐藏打开/事件的 Accordion

javascript - 使用 jquery Click 功能的多个/嵌套选项卡不起作用

javascript - 如果没有警报语句,Ajax 请求将无法工作

javascript - 在浏览器重新加载/刷新/关闭警报,然后 ajax

javascript - 夏令时导致 Firefox 上的 jQuery UI 日期选择器出现问题

javascript - Image source late binding - 摆脱同时显示的冗余错误图标

javascript - 迭代函数数组

Jquery 移动页面仅在重新加载后有效?