ऐसा करने का सबसे आसान तरीका ब्लूबर्ड वादों का उपयोग करना है, विशेष रूप से each
, props
, reduce
और map
आपके उपयोग के मामले के आधार पर तरीके।
आपके मामले में, मैं
. की तर्ज पर कुछ सुझाव दूंगाvar bluebird = require('bluebird');
var mongoose = require('mongoose');
var UserModel = mongoose.model('User');
function getUser(userId) {
return UserModel.findOne({_id: userId}).lean().exec()
.then(function(user){
return bluebird.props({
firstName: user.firstName,
parents: bluebird.map(user.parents, getUser),
children: bluebird.map(user.children, getUser),
partner: bluebird.map(user.partner, getUser),
sibling: bluebird.map(user.sibling, getUser)
})
});
}
// Then call getUser once on the root node, e.g.
getUser(rootUserObjectId)
.then(function(userTree){
console.log(userTree)
})
मुझे बताएं कि यह कैसे जाता है!