Firebase 推送到“a”中的数组;然后";但是它';它是空的
我正在将firebase数据库中的一些密钥添加到数组中,但它仍然为空。代码如下:Firebase 推送到“a”中的数组;然后";但是它';它是空的,firebase,promise,Firebase,Promise,我正在将firebase数据库中的一些密钥添加到数组中,但它仍然为空。代码如下: ref.once("value") .then(function(snapshot) { snapshot.forEach(tag =>{ tags1.push(tag.key); }) }); 我通过在forEach内的控制台上打印tag.key来检查它的值,并且所有的键都打印正确 然后,我尝试在tags1数组上
ref.once("value")
.then(function(snapshot) {
snapshot.forEach(tag =>{
tags1.push(tag.key);
})
});
我通过在forEach
内的控制台上打印tag.key
来检查它的值,并且所有的键都打印正确
然后,我尝试在tags1
数组上执行forEach
,但它没有为输入。我已经打印了tags1
的长度,它是0
我已经这样声明了tags1
:
let tags1 = [];
我还试图将它声明为数组
,但它一直保持为空 让我们回顾一下事情发生的顺序:
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!
让我们回顾一下事情发生的顺序:
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!
将不会在then
子句之外填充tags1
数组。这是异步概念的基础。这与typescript、ionic或firebase无关。您的意思是“。然后(
我尝试对tags1数组)
”?将不会在then
子句之外填充tags1
数组。这是异步概念的基础。这与typescript、ionic或firebase无关。您的意思是“。然后(
我尝试对标记1数组执行forEach)
”?