Javascript 当console.log返回带值的数组时,Resolve返回空数组
在getNestedFlags中,我向finalJson数组添加值。 然后在console.log之后,我可以看到整个finalJson数组的值,但resolve返回一个空数组。您知道如何在resolve中获得与console.log中相同的结果吗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 =
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是否正确,但您在稍后读取结果时遇到了错误?注意:您的代码(删除反模式)可能会被重新编写(不是答案,因此不发布答案)