无法从JS中的for循环更改全局变量值

时间:2018-12-18 16:55:46

标签: javascript

我有以下JS代码,这些代码使用API​​来获取一些JSON对象。

function countProperties(obj) {
    var count = 0;

    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            ++count;
    }

    return count;
}
experts = {};

for(var key in data) {
  (function(){
    var k = key;
    $.post('../api/counsellor/slots/'+data[k].id,{"date":"2018-12-21","counsellor_id":data[k].id}, function(status,message){
        experts[k] = countProperties(status);
    });
  })(); 
}
console.log(experts)

但是console.log(experts)显示并清空对象。但是,在for循环中写入时,它将显示正确的对象。 这是怎么回事?

0 个答案:

没有答案