为什么相同的功能对一个数组有效而对另一数组不起作用?

问题描述

我有这样的功能

generatedArray.forEach( item => {
            const stocksRef = firebase.database().ref('clients');
            const filteredobject = stocksRef.orderByChild('id').equalTo(item.inn);
            filteredobject.once("value",snapshot => {
                console.log("value",snapshot.val());

                snapshot.forEach((child) => {
                    Object.assign(item,child.val());
                    console.log('kokoko',child.val())
                });

                console.log("After take snapshot from db",generatedArray);

            });

            item.deals.forEach( deal => {
                const stocksRef = firebase.database().ref('list');
                const filteredobject = stocksRef.orderByChild('isin').equalTo(deal.isin);
                filteredobject.once("value",snapshot => {
                    console.log("value",snapshot.val());

                    snapshot.forEach((child) => {
                        Object.assign(deal,child.val());
                        console.log('kokoko',child.val())
                    });

                    console.log("After take snapshot from db",generatedArray);

                });
            })
        })

它将db中的数据添加到generateArray中。当generateArray看起来像:

[
    {
        'inn': 'string','deals': [{...},{...}]
    },{
        'inn': 'string',{...}]
    }
]

一切正常,但是如果generateArray里面只有一个对象,就像这样:

[
    {
        'inn': 'string','deals': [{...}]
    }
]

forEach甚至都没有启动,它没有显示任何console.logs 为什么会发生?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)