promise中的JavaScript array.push().then()

时间:2017-08-14 12:44:05

标签: javascript promise

目前,我遇到了一些奇怪的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());

enter image description here

如果我知道迭代数组,则会显示[0][1]的值。也无法通过索引getData()[2]访问该字段。我不确定这是否会导致promises的异步行为,但对我来说这似乎很奇怪,因为值和索引都存在。

有谁知道为什么会这样?

0 个答案:

没有答案