function getChild2 (user, userid, level, callback) {
User.find({ 'parentId': new mongoose.Types.ObjectId(userid), 'active': true },
{ "_id": true, "firstName": true,"lastName": true,"userId": true,"rightLeg": true,"leftLeg": true, "userName": true, "children": true, "activePackage": true, "type": true, "styleClass": true, "expanded": true }).
sort({ 'created': -1 }).exec(function (err, users) {
if (err) {
console1.error('Error:User:Read: ' + errorHandler.getErrorMessage(err));
} else {
console1.log('Log:User:Read: user network response ' + JSON.stringify(users));
user.children.push(users);
users.forEach(function (val, i) {
console.log('getchild2 ' + val._id);
getChild2(val, val._id, level+1, null);
});
if (users.length === 0)
{
callback(user);
}
}
});
我需要在users.length === 0时使用回调但是在我的迭代中我将回调设为null,即在循环结束时回调变为null,然后它表示错误回调不是函数。然后我想到最初将回调函数存储在一个变量中。
if (callback !== null) {
toCall = callback;
}
then...
if (users.length === 0 ) {
toCall(users);
}
现在它说toCall不是一个函数。任何人都可以帮我解决这个问题。谢谢。