Javascript 当console.log返回带值的数组时,Resolve返回空数组

Javascript 当console.log返回带值的数组时,Resolve返回空数组,javascript,node.js,Javascript,Node.js,在getNestedFlags中,我向finalJson数组添加值。 然后在console.log之后,我可以看到整个finalJson数组的值,但resolve返回一个空数组。您知道如何在resolve中获得与console.log中相同的结果吗 getScheduledFlags: (idTc, idScheduled) => { return new Promise((resolve, reject) => { var getNestedFlags =

在getNestedFlags中,我向finalJson数组添加值。 然后在console.log之后,我可以看到整个finalJson数组的值,但resolve返回一个空数组。您知道如何在resolve中获得与console.log中相同的结果吗

getScheduledFlags: (idTc, idScheduled) => {
    return new Promise((resolve, reject) => {

        var getNestedFlags = (array1, array2, res) => {
            array1.forEach(item => {
                var childrenItems = res.filter(item1 => item1.id_parent == item.id)
                if(childrenItems.length > 1){
                    var childrens = []
                    getNestedFlags(childrenItems, childrens, res)
                    array2[item.name] = childrens
                } else {
                    array2[item.name] = item.value
                }
            })
        }

        _tc.get(idTc).then(result => {
            var flags = result.flags
            var bases = result.bases

            _featureFlags.getAll().then(allFlags => {
                tcScheduled= _featureFlags.getFinalTcFlags(result)
                res = _this.replaceFlags(allFlags, tcScheduled.flags)
                parentFlags = res.filter(item => item.id_parent == 0)

                var finalJson = []

                getNestedFlags(parentFlags, finalJson, res)

                console.log(finalJson)
                resolve(finalJson)
            })
        })
    })

},

在javascript中,您发布的代码必须作为数组通过引用传递,而不是通过值传递。在调用
resolve()
函数之前和之后,检查代码中的
console.log()

var finalJson=[]
var parentFlags='';
var-res='';
getNestedFlags(parentFlags、finalJson、res);
log(finalJson);
解决(最终JSON);
log(finalJson);
函数getNestedFlags(parentFlags、finalJson、res){
finalJson.push(1);
finalJson.push(2);
最后推送(3);
}
函数解析(finalJson){
最后推送(4);
最后推(5);

}
在javascript中,您发布的代码必须作为数组通过引用传递,而不是通过值传递。在调用
resolve()
函数之前和之后,检查代码中的
console.log()

var finalJson=[]
var parentFlags='';
var-res='';
getNestedFlags(parentFlags、finalJson、res);
log(finalJson);
解决(最终JSON);
log(finalJson);
函数getNestedFlags(parentFlags、finalJson、res){
finalJson.push(1);
finalJson.push(2);
最后推送(3);
}
函数解析(finalJson){
最后推送(4);
最后推(5);

}
由[]初始化数组是我的问题。
现在{}一切都好了。

我的问题是通过[]初始化数组。
现在使用{}一切都很好。

您能在这里添加更多的代码吗?您能在这里显示解析函数吗?这样我们就能看到并解决你的问题problem@user2520818是
\u tc.get
您唯一的异步函数对吗?回调函数只调用一次吗?您是否尝试过使用固定数组进行解析,并查看promise resolve是否正确,但您在稍后读取结果时遇到了错误?注意:您的代码(删除反模式)可能会被重新编写(不是答案,因此不会发布答案)您可以在此处添加更多代码吗?您可以在此处显示解析功能吗?这样我们就能看到并解决你的问题problem@user2520818是
\u tc.get
您唯一的异步函数对吗?回调函数只调用一次吗?您是否尝试过使用某个固定数组进行解析,并查看promise resolve是否正确,但您在稍后读取结果时遇到了错误?注意:您的代码(删除反模式)可能会被重新编写(不是答案,因此不发布答案)