Je haalt beloftes en callbacks door elkaar. exec() zal een belofte retourneren, maar alleen als er geen argumenten aan zijn doorgegeven. Bovendien moet u de Belofte retourneren die is geretourneerd door exec() .
return budget.save().then((res) => {
return Budget.findById(res._id) // missing return here
.populate('User')
.populate('Vehicle')
.exec() // don't need anything else
})
Je kunt dit wat meer opruimen:
return budget.save()
.then(res => Budget.findById(res._id)
.populate('User')
.populate('Vehicle')
.exec())
Als u de resultaten moet transformeren die worden geretourneerd door findById voordat u ze aan de klant overdraagt:
return budget.save()
.then(res => Budget.findById(res._id)
.populate('User')
.populate('Vehicle')
.exec())
.then(res => {
res.foo = 'Foo'
return res
})