有多个语句时,列表会清空吗?

时间:2019-03-07 02:39:42

标签: javascript

我知道标题似乎有些奇怪,但不确定如何解决这个问题:)

无论如何,在Chrome控制台中,我正在执行以下代码:

var ids = [];
//Initialize ids
fetchIds("hamburgers", {
                success: function(e) {
                    _.each(e, function(e) {
                        _.each(e.el, function(e) {
                            ids.push(e.ei);
                        })
                    }),
                    function() {};
                }
            });

这很好用,当我在控制台中输入ids时,它包含5个元素。但是,如果我添加任何后续语句,ids是否被清空?例如,如果我添加一个简单的日志:

var ids = [];
//Initialize ids
fetchIds("hamburgers", {
                success: function(e) {
                    _.each(e, function(e) {
                        _.each(e.el, function(e) {
                            ids.push(e.ei);
                        })
                    }),
                    function() {};
                }
            });
console.log(ids.length);

这将输出0,就好像ids不包含任何元素,并且如果我尝试在任何后续语句中使用ids,它是否被认为是空的?为什么会这样?

1 个答案:

答案 0 :(得分:0)

函数fetchIds可能是异步函数。将console.log(ids.length);放在success函数中