gpt4 book ai didi

javascript - 从递归函数expressjs返回空数组?

转载 作者:行者123 更新时间:2023-11-28 03:19:04 25 4
gpt4 key购买 nike

我正在尝试从 MongoDB 获取所有子元素,我编写了一个递归函数来获取所有子元素。它循环遍历所有值,我可以控制台记录所有值在循环内部,当我将值推送到数组并返回值时,我得到一个空数组。我正在用expressjs编写这段代码代码如下

static async getAllChildCat(categoryId){

var allCat = [];

let test = async (categoryId) => {
let category = await NewCategory.find({ 'parent': categoryId });
if (category.length > 0) {
await category.forEach(async elem => {
let newVal = await test(elem._id);
console.log(elem);
allCat.push(elem);
});
}
}

var val = await test(categoryId);

return allCat;
}

最佳答案

test 是一个异步函数,因此您将返回一个空的 allCat 数组。您需要使用 await test(categoryId) 调用它,以便 return 语句等待 test 解析。

关于javascript - 从递归函数expressjs返回空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59354493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com