Javascript对象显示空

时间:2015-11-19 15:39:34

标签: javascript

我正在尝试使用从POST请求返回的数据来填充空对象。数据正在成功返回,但在代码中,对象被发现为null。代码如下:

var item = {};   
var args= {p: "<?php echo $id; ?>"};

$.post('api.php', args, function(response) {

    startSpinner(spinner);
    if (response.status == 0) {
        item = response.data;
        console.log("ITEM: " + JSON.stringify(item));
    }

}).done(function() {
    ..
});

if (item == null || item == undefined) {
    alert("TTEMST");
}

在控制台日志中,清楚地显示项目以填充数据,但是以某种方式满足空对象的if条件,即正在显示警告框。我认为填充对象的方式有问题。请帮忙!!

3 个答案:

答案 0 :(得分:2)

$.post()是异步的。 alert在成功回调之前执行

答案 1 :(得分:1)

这行代码最有可能在帖子返回之前运行。您应该将其添加到回调或当时。在转移到if语句之前,代码不会等待$.post返回。

if (item == null || item == undefined) {
    alert("TTEMST");
}

答案 2 :(得分:1)

您的if条件有警报,但不会等待帖子完成。

你需要在帖子的回调中使用if,如下所示:

$.post('api.php', args, function(response) {

    startSpinner(spinner);
    if (response.status == 0) {
        item = response.data;
        console.log("ITEM: " + JSON.stringify(item));

        if (item == null || item == undefined) {
            alert("TTEMST");
        }
    }