我正在尝试使用从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条件,即正在显示警告框。我认为填充对象的方式有问题。请帮忙!!
答案 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");
}
}