Du blander løfter og tilbagekald. exec()
vil returnere et løfte, men kun hvis der ikke er sendt nogen argumenter til det. Derudover skal du returnere løftet, der er returneret af exec()
.
return budget.save().then((res) => {
return Budget.findById(res._id) // missing return here
.populate('User')
.populate('Vehicle')
.exec() // don't need anything else
})
Du kan rydde lidt mere op i dette:
return budget.save()
.then(res => Budget.findById(res._id)
.populate('User')
.populate('Vehicle')
.exec())
Hvis du har brug for at transformere resultaterne returneret af findById
før du afleverer dem til klienten:
return budget.save()
.then(res => Budget.findById(res._id)
.populate('User')
.populate('Vehicle')
.exec())
.then(res => {
res.foo = 'Foo'
return res
})