我将一些来自firebase数据库的密钥添加到一个数组中,但它仍然是空的。代码如下:
ref.once("value")
.then(function(snapshot) {
snapshot.forEach(tag =>{
tags1.push(tag.key);
})
});
我通过在tag.key
内的控制台上打印来检查forEach
的值,并正确打印所有键。
然后,我尝试在forEach
数组上执行tags1
,但它没有输入for
。我打印了tags1
的长度,它是0。
我以这种方式宣布tags1
:
let tags1 = [];
我也尝试将其声明为Array<any>
,但它一直保持空白。
答案 0 :(得分:2)
让我们回顾一下事情发生的顺序:
const tags1 = []; // 1 -- EMPTY
ref.once("value") // 2 -- EMPTY
.then(function(snapshot) {
snapshot.forEach(tag => {
tags1.push(tag.key); // 4 -- GETS NEW VALUES
});
console.log(tags1); // 5 -- HAS ALL VALUES
});
console.log(tags1); // 3 -- STILL EMPTY!