目前,我遇到了一些奇怪的js数组行为,这对我来说是新的。如果有人可以帮我解决这个问题会很棒。 所以这是我的代码:
getData(strings) {
let unsortedKeys = ['key1', 'key2'];
strings.forEach(data => {
ref.once("value").then(data => {
// doesn't matter what will be pushed to the array
unsortedKeys[2] = 'key3';
});
});
return unsortedKeys;
}
我知道这段代码不起作用。我简化了Firebase对此示例的承诺。顺便说一句,我正在使用Angular和Typescript。
结果:
console.log(getData());
如果我知道迭代数组,则会显示[0]
和[1]
的值。也无法通过索引getData()[2]
访问该字段。我不确定这是否会导致promises的异步行为,但对我来说这似乎很奇怪,因为值和索引都存在。
有谁知道为什么会这样?