gpt4 book ai didi

javascript - node.js中异步函数的递归调用

转载 作者:行者123 更新时间:2023-11-30 11:55:30 25 4
gpt4 key购买 nike

我编写了一个递归查询来以数据库级别或分层方式更新数据。

我写了这段代码:

let updateInvitationRewards = function(parent, level, callback) {

Service.customer.getOneCustomer({
_id: parent
}, {}, {}, function(err, data) {

console.log(data.email);
level--;
if (data.parent) {
parent = data.parent.id;
} else if (level == 0 || data.parent == null)
callback("end");

updateInvitationRewards(parent, level--, callback);
});

};

updateInvitationRewards(parent, level, function(string) {
console.log(string);
cb();
});

这个查询给出了这样的错误:

Error: Callback was already called.

请帮助我,我是这类回调的新手。

最佳答案

有了所有括号,我们有:

if (data.parent) {
parent = data.parent.id;
} else if (level == 0 || data.parent == null) {
callback("end");
}

updateInvitationRewards(parent, level--, callback);

如果level等于0或者data.parent为null,触发回调,然后updateInvitationRewards同回调。

修复它:

if (data.parent) {
parent = data.parent.id;
} else if (level == 0 || data.parent == null) {
return callback("end"); // the execution stops here
}

updateInvitationRewards(parent, level--, callback);

关于javascript - node.js中异步函数的递归调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38100872/

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